diff options
Diffstat (limited to 'mate-panel/panel-toplevel.c')
-rw-r--r-- | mate-panel/panel-toplevel.c | 158 |
1 files changed, 74 insertions, 84 deletions
diff --git a/mate-panel/panel-toplevel.c b/mate-panel/panel-toplevel.c index 098106ec..2eb6e77a 100644 --- a/mate-panel/panel-toplevel.c +++ b/mate-panel/panel-toplevel.c @@ -4,6 +4,7 @@ * * Copyright (C) 2003 Sun Microsystems, Inc. * Copyright (C) 2004 Rob Adams + * Copyright (C) 2012-2021 MATE Developers * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -505,7 +506,7 @@ static void panel_toplevel_begin_grab_op(PanelToplevel* toplevel, PanelGrabOpTyp window = gtk_widget_get_window (widget); toplevel->priv->grab_op = op_type; - toplevel->priv->grab_is_keyboard = grab_keyboard; + toplevel->priv->grab_is_keyboard = (grab_keyboard != FALSE); toplevel->priv->orig_monitor = toplevel->priv->monitor; toplevel->priv->orig_x = toplevel->priv->x; @@ -529,7 +530,6 @@ static void panel_toplevel_begin_grab_op(PanelToplevel* toplevel, PanelGrabOpTyp cursor_type = panel_toplevel_grab_op_cursor ( toplevel, toplevel->priv->grab_op); - cursor = gdk_cursor_new_for_display (gdk_display_get_default (), cursor_type); display = gdk_window_get_display (window); @@ -773,7 +773,6 @@ static void panel_toplevel_move_to(PanelToplevel* toplevel, int new_x, int new_y y = new_y - panel_multimonitor_y (new_monitor); if (toplevel->priv->orientation & PANEL_HORIZONTAL_MASK) { - y_centered = FALSE; if (new_y <= display_min.y + snap_tolerance || new_y + height >= display_max.y - snap_tolerance) x_centered = abs (x - ((monitor_geom.width - width) / 2)) @@ -781,7 +780,6 @@ static void panel_toplevel_move_to(PanelToplevel* toplevel, int new_x, int new_y else x_centered = FALSE; } else { - x_centered = FALSE; if (new_x <= display_min.x + snap_tolerance || new_x + width >= display_max.x - snap_tolerance) y_centered = abs (y - ((monitor_geom.height - height) / 2)) @@ -1146,7 +1144,7 @@ static void panel_toplevel_hide_button_clicked(PanelToplevel* toplevel, GtkButto arrow_type = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "arrow-type")); if (toplevel->priv->state == PANEL_STATE_NORMAL) { - GtkDirectionType direction = -1; + GtkDirectionType direction; switch (arrow_type) { case GTK_ARROW_UP: @@ -1166,7 +1164,7 @@ static void panel_toplevel_hide_button_clicked(PanelToplevel* toplevel, GtkButto break; } - panel_toplevel_hide (toplevel, FALSE, direction); + panel_toplevel_hide (toplevel, FALSE, (gint) direction); } else panel_toplevel_unhide (toplevel); } @@ -1220,9 +1218,9 @@ panel_toplevel_add_hide_button (PanelToplevel *toplevel, g_signal_connect_swapped (button, "clicked", G_CALLBACK (panel_toplevel_hide_button_clicked), toplevel); - g_signal_connect_swapped (button, "button_press_event", + g_signal_connect_swapped (button, "button-press-event", G_CALLBACK (panel_toplevel_hide_button_event), toplevel); - g_signal_connect_swapped (button, "button_release_event", + g_signal_connect_swapped (button, "button-release-event", G_CALLBACK (panel_toplevel_hide_button_event), toplevel); gtk_grid_attach (GTK_GRID (toplevel->priv->grid), button, left, top, 1, 1); @@ -1320,7 +1318,6 @@ static void panel_toplevel_update_hide_buttons(PanelToplevel* toplevel) { int panel_size = toplevel->priv->size; - int hb_size = 0; if (toplevel->priv->buttons_enabled) { panel_toplevel_update_buttons_showing (toplevel); @@ -1366,11 +1363,16 @@ static void panel_toplevel_update_hide_buttons(PanelToplevel* toplevel) /* set size after setting the arrow */ if (toplevel->priv->buttons_enabled) { - - if ( panel_size < 20) { hb_size = 16; } - else if ( panel_size < 40) { hb_size = 20; } - else if ( panel_size < 60) { hb_size = 26; } - else { hb_size = 30; } + int hb_size; + + if (panel_size < 20) + hb_size = 16; + else if (panel_size < 40) + hb_size = 20; + else if (panel_size < 60) + hb_size = 26; + else + hb_size = 30; gtk_widget_set_size_request (toplevel->priv->hide_button_top, panel_size, hb_size); gtk_widget_set_size_request (toplevel->priv->hide_button_bottom, panel_size, hb_size); @@ -1515,10 +1517,6 @@ static gboolean panel_toplevel_update_struts(PanelToplevel* toplevel, gboolean e } } - /* Adjust strut size based on scale factor */ - if (strut > 0) - strut += toplevel->priv->size * (toplevel->priv->scale - 1); - if (orientation != toplevel->priv->orientation) { toplevel->priv->orientation = orientation; g_object_notify (G_OBJECT (toplevel), "orientation"); @@ -1538,8 +1536,7 @@ static gboolean panel_toplevel_update_struts(PanelToplevel* toplevel, gboolean e orientation, strut, strut_start, - strut_end, - toplevel->priv->scale); + strut_end); } else { panel_struts_unregister_strut (toplevel); @@ -2512,7 +2509,7 @@ panel_toplevel_update_geometry (PanelToplevel *toplevel, #ifdef HAVE_X11 if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (GTK_WIDGET (toplevel)))) { if (toplevel->priv->state == PANEL_STATE_NORMAL || - toplevel->priv->state == PANEL_STATE_AUTO_HIDDEN) { + toplevel->priv->state != PANEL_STATE_AUTO_HIDDEN) { panel_struts_update_toplevel_geometry (toplevel, &toplevel->priv->geometry.x, &toplevel->priv->geometry.y, @@ -2659,27 +2656,35 @@ panel_toplevel_reverse_arrows (PanelToplevel *toplevel) static void panel_toplevel_disconnect_attached (PanelToplevel *toplevel) { - int i; + guint i; +#if GLIB_CHECK_VERSION(2,62,0) for (i = 0; i < N_ATTACH_TOPLEVEL_SIGNALS; i++) { - if (!toplevel->priv->attach_toplevel_signals [i]) - continue; - - g_signal_handler_disconnect ( - toplevel->priv->attach_toplevel, - toplevel->priv->attach_toplevel_signals [i]); - toplevel->priv->attach_toplevel_signals [i] = 0; + g_clear_signal_handler (&toplevel->priv->attach_toplevel_signals [i], + toplevel->priv->attach_toplevel); } for (i = 0; i < N_ATTACH_WIDGET_SIGNALS; i++) { - if (!toplevel->priv->attach_widget_signals [i]) - continue; + g_clear_signal_handler (&toplevel->priv->attach_widget_signals [i], + toplevel->priv->attach_widget); + } +#else + for (i = 0; i < N_ATTACH_TOPLEVEL_SIGNALS; i++) { + if (toplevel->priv->attach_toplevel_signals [i] != 0) { + g_signal_handler_disconnect (toplevel->priv->attach_toplevel, + toplevel->priv->attach_toplevel_signals [i]); + toplevel->priv->attach_toplevel_signals [i] = 0; + } + } - g_signal_handler_disconnect ( - toplevel->priv->attach_widget, - toplevel->priv->attach_widget_signals [i]); - toplevel->priv->attach_widget_signals [i] = 0; + for (i = 0; i < N_ATTACH_WIDGET_SIGNALS; i++) { + if (toplevel->priv->attach_widget_signals [i] != 0) { + g_signal_handler_disconnect (toplevel->priv->attach_widget, + toplevel->priv->attach_widget_signals [i]); + toplevel->priv->attach_widget_signals [i] = 0; + } } +#endif } static void @@ -2822,7 +2827,7 @@ panel_toplevel_popup_panel_menu (PanelToplevel *toplevel) { gboolean retval = FALSE; - g_signal_emit_by_name (toplevel, "popup_menu", &retval); + g_signal_emit_by_name (toplevel, "popup-menu", &retval); return retval; } @@ -2894,8 +2899,6 @@ panel_toplevel_move_resize_window (PanelToplevel *toplevel, GtkWidget *widget; GList *list; - const char *id; - int position; gboolean stick; widget = GTK_WIDGET (toplevel); @@ -2920,7 +2923,7 @@ panel_toplevel_move_resize_window (PanelToplevel *toplevel, if (resize || move) { for (list = toplevel->priv->panel_widget->applet_list; list != NULL; list = g_list_next (list)) { AppletData *ad = list->data; - id = mate_panel_applet_get_id_by_widget (ad->applet); + const char *id = mate_panel_applet_get_id_by_widget (ad->applet); if (!id) return; @@ -2931,7 +2934,7 @@ panel_toplevel_move_resize_window (PanelToplevel *toplevel, stick = g_settings_get_boolean (info->settings, PANEL_OBJECT_PANEL_RIGHT_STICK_KEY); if (stick) { - position = g_settings_get_int (info->settings, PANEL_OBJECT_POSITION_KEY); + int position = g_settings_get_int (info->settings, PANEL_OBJECT_POSITION_KEY); if (toplevel->priv->orientation & PANEL_HORIZONTAL_MASK) { ad->pos = toplevel->priv->geometry.width - position; } else { @@ -3061,26 +3064,18 @@ panel_toplevel_dispose (GObject *widget) { PanelToplevel *toplevel = (PanelToplevel *) widget; - if (toplevel->priv->settings_path) { - g_free (toplevel->priv->settings_path); - toplevel->priv->settings_path = NULL; - } + g_clear_pointer (&toplevel->priv->settings_path, g_free); if (toplevel->settings) { g_signal_handlers_disconnect_by_data (toplevel->settings, toplevel); - g_object_unref (toplevel->settings); - toplevel->settings = NULL; + g_clear_object (&toplevel->settings); } - if (toplevel->queued_settings) { - g_object_unref (toplevel->queued_settings); - toplevel->queued_settings = NULL; - } + g_clear_object (&toplevel->queued_settings); if (toplevel->background_settings) { g_signal_handlers_disconnect_by_data (toplevel->background_settings, toplevel); - g_object_unref (toplevel->background_settings); - toplevel->background_settings = NULL; + g_clear_object (&toplevel->background_settings); } if (toplevel->priv->gtk_settings) { @@ -3100,15 +3095,8 @@ panel_toplevel_dispose (GObject *widget) toplevel->priv->attach_widget = NULL; } - if (toplevel->priv->description) { - g_free (toplevel->priv->description); - toplevel->priv->description = NULL; - } - - if (toplevel->priv->name) { - g_free (toplevel->priv->name); - toplevel->priv->name = NULL; - } + g_clear_pointer (&toplevel->priv->description, g_free); + g_clear_pointer (&toplevel->priv->name, g_free); panel_toplevel_disconnect_timeouts (toplevel); @@ -3241,7 +3229,7 @@ panel_toplevel_size_allocate (GtkWidget *widget, GtkBin *bin = (GtkBin *) widget; GtkStyleContext *context; GtkStateFlags state; - GtkBorder padding; + GtkBorder padding; GtkWidget *child; GtkAllocation challoc; GtkAllocation child_allocation; @@ -3297,10 +3285,11 @@ panel_toplevel_size_allocate (GtkWidget *widget, challoc.y != child_allocation.y || challoc.width != child_allocation.width || challoc.height != child_allocation.height)) { - GtkAllocation allocation; + GtkAllocation allocation_to_invalidate; - gtk_widget_get_allocation (widget, &allocation); - gdk_window_invalidate_rect (gtk_widget_get_window (widget), &allocation, FALSE); + gtk_widget_get_allocation (widget, &allocation_to_invalidate); + gdk_window_invalidate_rect (gtk_widget_get_window (widget), + &allocation_to_invalidate, FALSE); } if (child && gtk_widget_get_visible (child)) @@ -3688,7 +3677,7 @@ panel_toplevel_start_animation (PanelToplevel *toplevel) void panel_toplevel_hide (PanelToplevel *toplevel, gboolean auto_hide, - GtkDirectionType direction) + gint direction) { g_return_if_fail (PANEL_IS_TOPLEVEL (toplevel)); @@ -3703,14 +3692,18 @@ panel_toplevel_hide (PanelToplevel *toplevel, if (auto_hide) toplevel->priv->state = PANEL_STATE_AUTO_HIDDEN; else { + GtkDirectionType hide_direction; + if (direction == -1) { if (toplevel->priv->orientation & PANEL_VERTICAL_MASK) - direction = GTK_DIR_UP; + hide_direction = GTK_DIR_UP; else - direction = GTK_DIR_LEFT; + hide_direction = GTK_DIR_LEFT; + } else { + hide_direction = (GtkDirectionType) direction; } - switch (direction) { + switch (hide_direction) { case GTK_DIR_UP: g_return_if_fail (toplevel->priv->orientation & PANEL_VERTICAL_MASK); toplevel->priv->state = PANEL_STATE_HIDDEN_UP; @@ -4020,10 +4013,9 @@ panel_toplevel_update_gtk_settings (PanelToplevel *toplevel) toplevel->priv->gtk_settings = gtk_widget_get_settings (GTK_WIDGET (toplevel->priv->panel_widget)); - g_signal_connect_swapped (G_OBJECT (toplevel->priv->gtk_settings), - "notify::gtk-dnd-drag-threshold", - G_CALLBACK (panel_toplevel_drag_threshold_changed), - toplevel); + g_signal_connect_swapped (toplevel->priv->gtk_settings, "notify::gtk-dnd-drag-threshold", + G_CALLBACK (panel_toplevel_drag_threshold_changed), + toplevel); panel_toplevel_drag_threshold_changed (toplevel); } @@ -4352,7 +4344,6 @@ panel_toplevel_class_init (PanelToplevelClass *klass) DEFAULT_SIZE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - g_object_class_install_property ( gobject_class, PROP_X, @@ -4795,7 +4786,7 @@ panel_toplevel_init (PanelToplevel *toplevel) /* Prevent the window from being deleted via Alt+F4 by accident. This * happens with "alternative" window managers such as Sawfish or XFWM4. */ - g_signal_connect(GTK_WIDGET(toplevel), "delete-event", G_CALLBACK(gtk_true), NULL); + g_signal_connect (toplevel, "delete-event", G_CALLBACK(gtk_true), NULL); panel_background_init (&toplevel->background, (PanelBackgroundChangedNotify) background_changed, @@ -4848,12 +4839,11 @@ panel_toplevel_set_name (PanelToplevel *toplevel, !strcmp (toplevel->priv->name, name)) return; - if (toplevel->priv->name) - g_free (toplevel->priv->name); - toplevel->priv->name = NULL; - + g_free (toplevel->priv->name); if (name && name [0]) toplevel->priv->name = g_strdup (name); + else + toplevel->priv->name = NULL; panel_toplevel_update_name (toplevel); @@ -5156,7 +5146,7 @@ panel_toplevel_set_x (PanelToplevel *toplevel, } if (toplevel->priv->x_centered != x_centered) { - toplevel->priv->x_centered = x_centered; + toplevel->priv->x_centered = (x_centered != FALSE); changed = TRUE; g_object_notify (G_OBJECT (toplevel), "x-centered"); } @@ -5194,7 +5184,7 @@ panel_toplevel_set_y (PanelToplevel *toplevel, } if (toplevel->priv->y_centered != y_centered) { - toplevel->priv->y_centered = y_centered; + toplevel->priv->y_centered = (y_centered != FALSE); changed = TRUE; g_object_notify (G_OBJECT (toplevel), "y-centered"); } @@ -5337,7 +5327,7 @@ panel_toplevel_set_auto_hide (PanelToplevel *toplevel, if (toplevel->priv->auto_hide == auto_hide) return; - toplevel->priv->auto_hide = auto_hide; + toplevel->priv->auto_hide = (auto_hide != FALSE); if (toplevel->priv->auto_hide) panel_toplevel_queue_auto_hide (toplevel); @@ -5413,7 +5403,7 @@ panel_toplevel_set_animate (PanelToplevel *toplevel, if (toplevel->priv->animate == animate) return; - toplevel->priv->animate = animate; + toplevel->priv->animate = (animate != FALSE); g_object_notify (G_OBJECT (toplevel), "animate"); } @@ -5483,7 +5473,7 @@ panel_toplevel_set_enable_arrows (PanelToplevel *toplevel, if (toplevel->priv->arrows_enabled == enable_arrows) return; - toplevel->priv->arrows_enabled = enable_arrows; + toplevel->priv->arrows_enabled = (enable_arrows != FALSE); panel_toplevel_update_hide_buttons (toplevel); |