diff options
author | monsta <[email protected]> | 2016-11-21 21:14:26 +0300 |
---|---|---|
committer | monsta <[email protected]> | 2016-11-21 21:14:26 +0300 |
commit | d0ddaedffa7d417a699cafce73c1e418515c4a28 (patch) | |
tree | 645b7a86e32b21113e1ce14f563bfb8d8900fa53 /mate-panel/panel-widget.c | |
parent | 7dfeb78328039cf92a9f45d64c9b3662d967a1fe (diff) | |
download | mate-panel-d0ddaedffa7d417a699cafce73c1e418515c4a28.tar.bz2 mate-panel-d0ddaedffa7d417a699cafce73c1e418515c4a28.tar.xz |
move to GTK+3 (>= 3.14), drop GTK+2 code and --with-gtk build option
and require libmate-desktop >= 1.17
WARNING: use GTK+3 build of libmateweather for this build.
that lib is not migrated to GTK+3 only as we will possibly
use libgweather instead of it.
Diffstat (limited to 'mate-panel/panel-widget.c')
-rw-r--r-- | mate-panel/panel-widget.c | 192 |
1 files changed, 10 insertions, 182 deletions
diff --git a/mate-panel/panel-widget.c b/mate-panel/panel-widget.c index 5bb4b6d3..2a2e1704 100644 --- a/mate-panel/panel-widget.c +++ b/mate-panel/panel-widget.c @@ -11,9 +11,7 @@ #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> -#if GTK_CHECK_VERSION (3, 0, 0) #include <gtk/gtkx.h> /* for GTK_IS_SOCKET */ -#endif #include <libpanel-util/panel-list.h> @@ -62,7 +60,6 @@ static guint panel_widget_signals [LAST_SIGNAL] = {0}; static gboolean mate_panel_applet_in_drag = FALSE; static GtkWidget *saved_focus_widget = NULL; -#if GTK_CHECK_VERSION (3, 0, 0) static void panel_widget_get_preferred_size (GtkWidget *widget, GtkRequisition *minimum_size, GtkRequisition *natural_size); @@ -72,10 +69,6 @@ static void panel_widget_get_preferred_width (GtkWidget *widget, static void panel_widget_get_preferred_height (GtkWidget *widget, gint *minimum_height, gint *natural_height); -#else -static void panel_widget_size_request (GtkWidget *widget, - GtkRequisition *requisition); -#endif static void panel_widget_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static void panel_widget_cadd (GtkContainer *container, @@ -85,23 +78,12 @@ static void panel_widget_cremove (GtkContainer *container, static void panel_widget_dispose (GObject *obj); static void panel_widget_finalize (GObject *obj); -#if GTK_CHECK_VERSION (3, 18, 0) -#elif GTK_CHECK_VERSION (3, 0, 0) +#if !GTK_CHECK_VERSION (3, 18, 0) static void panel_widget_realize (GtkWidget *widget); static void panel_widget_unrealize (GtkWidget *panel); static void panel_widget_state_flags_changed (GtkWidget *widget, GtkStateFlags previous_state); static void panel_widget_style_updated (GtkWidget *widget); -#else -static void panel_widget_realize (GtkWidget *widget); -static void panel_widget_unrealize (GtkWidget *panel); -static void panel_widget_state_changed (GtkWidget *widget, - GtkStateType previous_state); -static void panel_widget_style_set (GtkWidget *widget, - GtkStyle *previous_style); -#endif - -#if !GTK_CHECK_VERSION (3, 18, 0) static void panel_widget_background_changed (PanelBackground *background, PanelWidget *panel); #endif @@ -138,11 +120,9 @@ static void emit_applet_moved (PanelWidget *panel_widget, AppletData *applet) { -#if GTK_CHECK_VERSION (3, 0, 0) /* we always want to queue a draw after moving, so do it here instead * of after the signal emission in all callers */ gtk_widget_queue_draw (applet->applet); -#endif g_signal_emit (panel_widget, panel_widget_signals [APPLET_MOVE_SIGNAL], 0, applet->applet); @@ -441,27 +421,17 @@ panel_widget_class_init (PanelWidgetClass *class) object_class->dispose = panel_widget_dispose; object_class->finalize = panel_widget_finalize; -#if GTK_CHECK_VERSION (3, 0, 0) widget_class->get_preferred_width = panel_widget_get_preferred_width; widget_class->get_preferred_height = panel_widget_get_preferred_height; -#else - widget_class->size_request = panel_widget_size_request; -#endif widget_class->size_allocate = panel_widget_size_allocate; #if GTK_CHECK_VERSION (3, 20, 0) gtk_widget_class_set_css_name (widget_class, "PanelWidget"); #endif -#if GTK_CHECK_VERSION (3, 18, 0) -#elif GTK_CHECK_VERSION (3, 0, 0) +#if !GTK_CHECK_VERSION (3, 18, 0) widget_class->realize = panel_widget_realize; widget_class->unrealize = panel_widget_unrealize; widget_class->state_flags_changed = panel_widget_state_flags_changed; widget_class->style_updated = panel_widget_style_updated; -#else - widget_class->realize = panel_widget_realize; - widget_class->unrealize = panel_widget_unrealize; - widget_class->state_changed = panel_widget_state_changed; - widget_class->style_set = panel_widget_style_set; #endif widget_class->focus = panel_widget_real_focus; @@ -1236,13 +1206,9 @@ panel_widget_right_stick(PanelWidget *panel,int old_size) } static void -#if GTK_CHECK_VERSION (3, 0, 0) panel_widget_get_preferred_size(GtkWidget *widget, GtkRequisition *minimum_size, GtkRequisition *natural_size) -#else -panel_widget_size_request(GtkWidget *widget, GtkRequisition *minimum_size) -#endif { PanelWidget *panel; GList *list; @@ -1261,34 +1227,26 @@ panel_widget_size_request(GtkWidget *widget, GtkRequisition *minimum_size) minimum_size->height = 0; minimum_size->width = panel->sz; } -#if GTK_CHECK_VERSION (3, 0, 0) natural_size->width = minimum_size->width; natural_size->height = minimum_size->height; -#endif ad_with_hints = NULL; for (list = panel->applet_list; list!=NULL; list = g_list_next(list)) { AppletData *ad = list->data; GtkRequisition child_min_size; -#if GTK_CHECK_VERSION (3, 0, 0) GtkRequisition child_natural_size; gtk_widget_get_preferred_size(ad->applet, &child_min_size, &child_natural_size); -#else - gtk_widget_size_request(ad->applet, &child_min_size); -#endif if (panel->orient == GTK_ORIENTATION_HORIZONTAL) { if (minimum_size->height < child_min_size.height && !ad->size_constrained) minimum_size->height = child_min_size.height; -#if GTK_CHECK_VERSION (3, 0, 0) if (natural_size->height < child_natural_size.height && !ad->size_constrained) natural_size->height = child_natural_size.height; -#endif if (panel->packed && ad->expand_major && ad->size_hints) ad_with_hints = g_list_prepend (ad_with_hints, @@ -1297,19 +1255,15 @@ panel_widget_size_request(GtkWidget *widget, GtkRequisition *minimum_size) else if (panel->packed) { minimum_size->width += child_min_size.width; -#if GTK_CHECK_VERSION (3, 0, 0) natural_size->width += child_natural_size.width; -#endif } } else { if (minimum_size->width < child_min_size.width && !ad->size_constrained) minimum_size->width = child_min_size.width; -#if GTK_CHECK_VERSION (3, 0, 0) if (natural_size->width < child_min_size.width && !ad->size_constrained) natural_size->width = child_min_size.width; -#endif if (panel->packed && ad->expand_major && ad->size_hints) ad_with_hints = g_list_prepend (ad_with_hints, @@ -1318,9 +1272,7 @@ panel_widget_size_request(GtkWidget *widget, GtkRequisition *minimum_size) else if (panel->packed) { minimum_size->height += child_min_size.height; -#if GTK_CHECK_VERSION (3, 0, 0) natural_size->height += child_natural_size.height; -#endif } } } @@ -1336,14 +1288,10 @@ panel_widget_size_request(GtkWidget *widget, GtkRequisition *minimum_size) if (!panel->packed) { if (panel->orient == GTK_ORIENTATION_HORIZONTAL) { minimum_size->width = panel->size; -#if GTK_CHECK_VERSION (3, 0, 0) natural_size->width = panel->size; -#endif } else { minimum_size->height = panel->size; -#if GTK_CHECK_VERSION (3, 0, 0) natural_size->height = panel->size; -#endif } } else { /* put the list in the correct order: this is important @@ -1377,27 +1325,22 @@ panel_widget_size_request(GtkWidget *widget, GtkRequisition *minimum_size) minimum_size->width = 12; if (minimum_size->height < 12) minimum_size->height = 12; -#if GTK_CHECK_VERSION (3, 0, 0) if (natural_size->width < 12 && !dont_fill) natural_size->width = 12; if (natural_size->height < 12) natural_size->height = 12; -#endif } else { if (minimum_size->width < 12) minimum_size->width = 12; if (minimum_size->height < 12 && !dont_fill) minimum_size->height = 12; -#if GTK_CHECK_VERSION (3, 0, 0) if (natural_size->width < 12) natural_size->width = 12; if (natural_size->height < 12 && !dont_fill) natural_size->height = 12; -#endif } } -#if GTK_CHECK_VERSION (3, 0, 0) static void panel_widget_get_preferred_width(GtkWidget *widget, gint *minimum_width, @@ -1419,7 +1362,6 @@ panel_widget_get_preferred_height(GtkWidget *widget, *minimum_height = req_min.height; *natural_height = req_natural.height; } -#endif static void queue_resize_on_all_applets(PanelWidget *panel) @@ -1499,11 +1441,7 @@ panel_widget_size_allocate(GtkWidget *widget, GtkAllocation *allocation) AppletData *ad = list->data; GtkAllocation challoc; GtkRequisition chreq; -#if GTK_CHECK_VERSION (3, 0, 0) gtk_widget_get_preferred_size (ad->applet, &chreq, NULL); -#else - gtk_widget_get_child_requisition(ad->applet, &chreq); -#endif ad->constrained = i; @@ -1554,11 +1492,7 @@ panel_widget_size_allocate(GtkWidget *widget, GtkAllocation *allocation) AppletData *ad = list->data; GtkRequisition chreq; -#if GTK_CHECK_VERSION (3, 0, 0) gtk_widget_get_preferred_size (ad->applet, &chreq, NULL); -#else - gtk_widget_get_child_requisition(ad->applet, &chreq); -#endif if (!ad->expand_major || !ad->size_hints) { if(panel->orient == GTK_ORIENTATION_HORIZONTAL) @@ -1628,11 +1562,8 @@ panel_widget_size_allocate(GtkWidget *widget, GtkAllocation *allocation) AppletData *ad = list->data; GtkAllocation challoc; GtkRequisition chreq; -#if GTK_CHECK_VERSION (3, 0, 0) gtk_widget_get_preferred_size (ad->applet, &chreq, NULL); -#else - gtk_widget_get_child_requisition (ad->applet, &chreq); -#endif + challoc.width = chreq.width; challoc.height = chreq.height; if(panel->orient == GTK_ORIENTATION_HORIZONTAL) { @@ -1668,9 +1599,7 @@ panel_widget_is_cursor(PanelWidget *panel, int overlap) { GtkWidget *widget; GtkAllocation allocation; -#if GTK_CHECK_VERSION(3, 0, 0) GdkDevice *device; -#endif int x,y; int w,h; @@ -1686,11 +1615,9 @@ panel_widget_is_cursor(PanelWidget *panel, int overlap) #if GTK_CHECK_VERSION(3, 20, 0) device = gdk_seat_get_pointer (gdk_display_get_default_seat (gtk_widget_get_display (widget))); gdk_window_get_device_position(gtk_widget_get_window (widget), device, &x, &y, NULL); -#elif GTK_CHECK_VERSION(3, 0, 0) +#else device = gdk_device_manager_get_client_pointer (gdk_display_get_device_manager (gtk_widget_get_display (widget))); gdk_window_get_device_position(gtk_widget_get_window (widget), device, &x, &y, NULL); -#else - gtk_widget_get_pointer(widget, &x, &y); #endif gtk_widget_get_allocation (widget, &allocation); @@ -1705,8 +1632,7 @@ panel_widget_is_cursor(PanelWidget *panel, int overlap) return FALSE; } -#if GTK_CHECK_VERSION (3, 18, 0) -#elif GTK_CHECK_VERSION (3, 0, 0) +#if !GTK_CHECK_VERSION (3, 18, 0) static void panel_widget_set_background_default_style (GtkWidget *widget) { @@ -1750,43 +1676,6 @@ panel_widget_style_updated (GtkWidget *widget) GTK_WIDGET_CLASS (panel_widget_parent_class)->style_updated (widget); panel_widget_set_background_default_style (widget); } - -#else - -static void -panel_widget_state_changed (GtkWidget *widget, - GtkStateType previous_state) -{ - GtkStyle *style; - GtkStateType state; - - if (gtk_widget_get_realized (widget)) { - style = gtk_widget_get_style (widget); - state = gtk_widget_get_state (widget); - - panel_background_set_default_style ( - &PANEL_WIDGET (widget)->background, - &style->bg [state], - style->bg_pixmap [state]); - } -} - -static void -panel_widget_style_set (GtkWidget *widget, GtkStyle *previous_style) -{ - GtkStyle *style; - GtkStateType state; - - if (gtk_widget_get_realized (widget)) { - style = gtk_widget_get_style (widget); - state = gtk_widget_get_state (widget); - - panel_background_set_default_style ( - &PANEL_WIDGET (widget)->background, - &style->bg [state], - style->bg_pixmap [state]); - } -} #endif static gboolean @@ -1806,10 +1695,6 @@ panel_widget_realize (GtkWidget *widget) { PanelWidget *panel = (PanelWidget *) widget; GdkWindow *window; -#if !GTK_CHECK_VERSION (3, 0, 0) - GtkStyle *style; - GtkStateType state; -#endif g_signal_connect (panel->toplevel, "configure-event", G_CALLBACK (toplevel_configure_event), panel); @@ -1817,23 +1702,8 @@ panel_widget_realize (GtkWidget *widget) GTK_WIDGET_CLASS (panel_widget_parent_class)->realize (widget); window = gtk_widget_get_window (widget); -#if !GTK_CHECK_VERSION (3, 0, 0) - style = gtk_widget_get_style (widget); - state = gtk_widget_get_state (widget); - - /* For auto-hidden panels with a colored background, we need native - * windows to avoid some uglyness on unhide */ -#endif - -#if GTK_CHECK_VERSION (3, 0, 0) panel_widget_set_background_default_style (widget); -#else - panel_background_set_default_style ( - &panel->background, - &style->bg [state], - style->bg_pixmap [state]); -#endif panel_background_realized (&panel->background, window); } @@ -1939,11 +1809,7 @@ panel_widget_init (PanelWidget *panel) panel->packed = FALSE; panel->orient = GTK_ORIENTATION_HORIZONTAL; -#if GTK_CHECK_VERSION (3, 0, 0) panel->size = 0; -#else - panel->size = G_MAXINT; -#endif panel->applet_list = NULL; panel->master_widget = NULL; panel->drop_widget = widget; @@ -1957,7 +1823,6 @@ panel_widget_init (PanelWidget *panel) (PanelBackgroundChangedNotify) panel_widget_background_changed, panel); #endif - panels = g_slist_append (panels, panel); } @@ -1978,14 +1843,7 @@ panel_widget_new (PanelToplevel *toplevel, panel->sz = sz; panel->packed = packed; -#if GTK_CHECK_VERSION (3, 0, 0) panel->size = 0; -#else - if (packed) - panel->size = 0; - else - panel->size = G_MAXINT; -#endif panel->toplevel = toplevel; panel->drop_widget = GTK_WIDGET (toplevel); @@ -2094,7 +1952,6 @@ panel_widget_applet_drag_start (PanelWidget *panel, if (window) { GdkGrabStatus status; GdkCursor *fleur_cursor; -#if GTK_CHECK_VERSION (3, 0, 0) GdkDisplay *display; #if GTK_CHECK_VERSION(3, 20, 0) GdkSeat *seat; @@ -2102,12 +1959,9 @@ panel_widget_applet_drag_start (PanelWidget *panel, GdkDevice *pointer; GdkDeviceManager *device_manager; #endif -#endif - fleur_cursor = gdk_cursor_new_for_display (gdk_display_get_default (), GDK_FLEUR); -#if GTK_CHECK_VERSION (3, 0, 0) display = gdk_window_get_display (window); #if GTK_CHECK_VERSION(3, 20, 0) seat = gdk_display_get_default_seat (display); @@ -2124,12 +1978,6 @@ panel_widget_applet_drag_start (PanelWidget *panel, #endif g_object_unref (fleur_cursor); -#else - status = gdk_pointer_grab (window, FALSE, - APPLET_EVENT_MASK, NULL, - fleur_cursor, time_); - gdk_cursor_unref (fleur_cursor); -#endif gdk_flush (); if (status != GDK_GRAB_SUCCESS) { @@ -2146,7 +1994,7 @@ panel_widget_applet_drag_end (PanelWidget *panel) #if GTK_CHECK_VERSION(3, 20, 0) GdkDisplay *display; GdkSeat *seat; -#elif GTK_CHECK_VERSION (3, 0, 0) +#else GdkDisplay *display; GdkDevice *pointer; GdkDeviceManager *device_manager; @@ -2161,14 +2009,12 @@ panel_widget_applet_drag_end (PanelWidget *panel) seat = gdk_display_get_default_seat (display); gdk_seat_ungrab (seat); -#elif GTK_CHECK_VERSION (3, 0, 0) +#else display = gtk_widget_get_display (GTK_WIDGET (panel)); device_manager = gdk_display_get_device_manager (display); pointer = gdk_device_manager_get_client_pointer (device_manager); gdk_device_ungrab (pointer, GDK_CURRENT_TIME); -#else - gdk_pointer_ungrab (GDK_CURRENT_TIME); #endif gtk_grab_remove (panel->currently_dragged_applet->applet); panel_widget_applet_drag_end_no_grab (panel); @@ -2180,9 +2026,7 @@ panel_widget_applet_drag_end (PanelWidget *panel) int panel_widget_get_cursorloc (PanelWidget *panel) { -#if GTK_CHECK_VERSION(3, 0, 0) GdkDevice *device; -#endif int x, y; gboolean rtl; @@ -2191,11 +2035,9 @@ panel_widget_get_cursorloc (PanelWidget *panel) #if GTK_CHECK_VERSION (3, 20, 0) device = gdk_seat_get_pointer (gdk_display_get_default_seat (gtk_widget_get_display (GTK_WIDGET(panel)))); gdk_window_get_device_position(gtk_widget_get_window (GTK_WIDGET(panel)), device, &x, &y, NULL); -#elif GTK_CHECK_VERSION (3, 0, 0) +#else device = gdk_device_manager_get_client_pointer (gdk_display_get_device_manager (gtk_widget_get_display (GTK_WIDGET(panel)))); gdk_window_get_device_position(gtk_widget_get_window (GTK_WIDGET(panel)), device, &x, &y, NULL); -#else - gtk_widget_get_pointer (GTK_WIDGET (panel), &x, &y); #endif rtl = gtk_widget_get_direction (GTK_WIDGET (panel)) == GTK_TEXT_DIR_RTL; @@ -2363,9 +2205,7 @@ panel_widget_applet_move_to_cursor (PanelWidget *panel) int pos; int movement; GtkWidget *applet; -#if GTK_CHECK_VERSION(3, 0, 0) GdkDevice *device; -#endif GSList *forb; GdkModifierType mods; AppletData *ad; @@ -2424,12 +2264,9 @@ panel_widget_applet_move_to_cursor (PanelWidget *panel) #if GTK_CHECK_VERSION (3, 20, 0) device = gdk_seat_get_pointer (gdk_display_get_default_seat (gtk_widget_get_display (GTK_WIDGET (panel)))); gdk_window_get_device_position (gtk_widget_get_window (GTK_WIDGET(panel)), device, NULL, NULL, &mods); -#elif GTK_CHECK_VERSION (3, 0, 0) +#else device = gdk_device_manager_get_client_pointer (gdk_display_get_device_manager (gtk_widget_get_display (GTK_WIDGET (panel)))); gdk_window_get_device_position (gtk_widget_get_window (GTK_WIDGET(panel)), device, NULL, NULL, &mods); -#else - gdk_window_get_pointer (gtk_widget_get_window (GTK_WIDGET(panel)), - NULL, NULL, &mods); #endif movement = PANEL_SWITCH_MOVE; @@ -2464,9 +2301,7 @@ static int move_timeout_handler(gpointer data) { PanelWidget *panel = data; -#if GTK_CHECK_VERSION(3, 0, 0) GdkDevice *device; -#endif g_return_val_if_fail(PANEL_IS_WIDGET(data),FALSE); @@ -2489,11 +2324,9 @@ move_timeout_handler(gpointer data) #if GTK_CHECK_VERSION (3, 20, 0) device = gdk_seat_get_pointer (gdk_display_get_default_seat (gtk_widget_get_display (widget))); gdk_window_get_device_position (gtk_widget_get_window (widget), device, &x, &y, NULL); -#elif GTK_CHECK_VERSION (3, 0, 0) +#else device = gdk_device_manager_get_client_pointer (gdk_display_get_device_manager (gtk_widget_get_display (widget))); gdk_window_get_device_position(gtk_widget_get_window (widget), device, &x, &y, NULL); -#else - gtk_widget_get_pointer(widget, &x, &y); #endif gtk_widget_get_allocation (widget, &allocation); @@ -2629,11 +2462,7 @@ panel_widget_applet_key_press_event (GtkWidget *widget, if (!mate_panel_applet_in_drag) return FALSE; -#if GTK_CHECK_VERSION (3, 0, 0) return gtk_bindings_activate (G_OBJECT (panel), -#else - return gtk_bindings_activate (GTK_OBJECT (panel), -#endif ((GdkEventKey *)event)->keyval, ((GdkEventKey *)event)->state); } @@ -3003,7 +2832,6 @@ panel_widget_emit_background_changed (PanelWidget *panel) { g_signal_emit (panel, panel_widget_signals [BACK_CHANGE_SIGNAL], 0); } - #else static void panel_widget_background_changed (PanelBackground *background, |