* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Cambridge, MA 02139, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
/**
klass->activate_link = gtk_link_button_activate_link;
/**
- * GtkLinkButton:uri
- *
- * The URI bound to this button.
+ * GtkLinkButton:uri:
+ *
+ * The URI bound to this button.
*
* Since: 2.10
*/
NULL,
G_PARAM_READWRITE));
/**
- * GtkLinkButton:visited
- *
+ * GtkLinkButton:visited:
+ *
* The 'visited' state of this button. A visited link is drawn in a
* different color.
*
{
GdkColor *link_color = NULL;
GtkWidget *label;
+ GdkRGBA rgba;
label = gtk_bin_get_child (GTK_BIN (link_button));
if (!GTK_IS_LABEL (label))
link_color = (GdkColor *) &default_link_color;
}
- gtk_widget_modify_fg (label, GTK_STATE_NORMAL, link_color);
- gtk_widget_modify_fg (label, GTK_STATE_ACTIVE, link_color);
- gtk_widget_modify_fg (label, GTK_STATE_PRELIGHT, link_color);
- gtk_widget_modify_fg (label, GTK_STATE_SELECTED, link_color);
+ rgba.red = link_color->red / 65535.;
+ rgba.green = link_color->green / 65535.;
+ rgba.blue = link_color->blue / 65535.;
+ rgba.alpha = 1;
+ gtk_widget_override_color (label, GTK_STATE_FLAG_NORMAL, &rgba);
+ gtk_widget_override_color (label, GTK_STATE_FLAG_ACTIVE, &rgba);
+ gtk_widget_override_color (label, GTK_STATE_FLAG_PRELIGHT, &rgba);
+ gtk_widget_override_color (label, GTK_STATE_FLAG_SELECTED, &rgba);
if (link_color != &default_link_color &&
link_color != &default_visited_link_color)
monitor_num = gdk_screen_get_monitor_at_point (screen, *x, *y);
gtk_menu_set_monitor (menu, monitor_num);
- gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
+ gdk_screen_get_monitor_workarea (screen, monitor_num, &monitor);
*x = CLAMP (*x, monitor.x, monitor.x + MAX (0, monitor.width - req.width));
*y = CLAMP (*y, monitor.y, monitor.y + MAX (0, monitor.height - req.height));
if (!gtk_widget_has_focus (widget))
gtk_widget_grab_focus (widget);
- if (gdk_event_triggers_context_menu ((GdkEvent *) event))
+ /* Don't popup the menu if there's no URI set,
+ * otherwise the menu item will trigger a warning */
+ if (gdk_event_triggers_context_menu ((GdkEvent *) event) &&
+ GTK_LINK_BUTTON (widget)->priv->uri != NULL)
{
gtk_link_button_do_popup (GTK_LINK_BUTTON (widget), event);