summaryrefslogtreecommitdiff
path: root/mate-panel/panel-widget.c
diff options
context:
space:
mode:
Diffstat (limited to 'mate-panel/panel-widget.c')
-rw-r--r--mate-panel/panel-widget.c57
1 files changed, 46 insertions, 11 deletions
diff --git a/mate-panel/panel-widget.c b/mate-panel/panel-widget.c
index b77fa1af..b040fb5a 100644
--- a/mate-panel/panel-widget.c
+++ b/mate-panel/panel-widget.c
@@ -1683,7 +1683,10 @@ panel_widget_is_cursor(PanelWidget *panel, int overlap)
!gtk_widget_get_visible(widget))
return FALSE;
-#if GTK_CHECK_VERSION(3, 0, 0)
+#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)
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
@@ -2085,16 +2088,25 @@ panel_widget_applet_drag_start (PanelWidget *panel,
#if GTK_CHECK_VERSION (3, 0, 0)
GdkDisplay *display;
GdkDevice *pointer;
+#if GTK_CHECK_VERSION(3, 20, 0)
+ GdkSeat *seat;
+#else
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);
+ pointer = gdk_seat_get_pointer (seat);
+#else
device_manager = gdk_display_get_device_manager (display);
pointer = gdk_device_manager_get_client_pointer (device_manager);
+#endif
status = gdk_device_grab (pointer, window,
GDK_OWNERSHIP_NONE, FALSE,
APPLET_EVENT_MASK,
@@ -2120,7 +2132,11 @@ panel_widget_applet_drag_start (PanelWidget *panel,
void
panel_widget_applet_drag_end (PanelWidget *panel)
{
-#if GTK_CHECK_VERSION (3, 0, 0)
+#if GTK_CHECK_VERSION(3, 20, 0)
+ GdkDisplay *display;
+ GdkDevice *pointer;
+ GdkSeat *seat;
+#elif GTK_CHECK_VERSION (3, 0, 0)
GdkDisplay *display;
GdkDevice *pointer;
GdkDeviceManager *device_manager;
@@ -2130,7 +2146,13 @@ panel_widget_applet_drag_end (PanelWidget *panel)
if (panel->currently_dragged_applet == NULL)
return;
-#if GTK_CHECK_VERSION (3, 0, 0)
+#if GTK_CHECK_VERSION(3, 20, 0)
+ display = gtk_widget_get_display (GTK_WIDGET (panel));
+ seat = gdk_display_get_default_seat (display);
+ pointer = gdk_seat_get_pointer (seat);
+
+ gdk_device_ungrab (pointer, GDK_CURRENT_TIME);
+#elif GTK_CHECK_VERSION (3, 0, 0)
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);
@@ -2157,7 +2179,10 @@ panel_widget_get_cursorloc (PanelWidget *panel)
g_return_val_if_fail (PANEL_IS_WIDGET (panel), -1);
-#if GTK_CHECK_VERSION (3, 0, 0)
+#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)
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
@@ -2387,12 +2412,15 @@ panel_widget_applet_move_to_cursor (PanelWidget *panel)
}
}
-#if GTK_CHECK_VERSION (3, 0, 0)
- 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);
+#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)
+ 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);
+ gdk_window_get_pointer (gtk_widget_get_window (GTK_WIDGET(panel)),
+ NULL, NULL, &mods);
#endif
movement = PANEL_SWITCH_MOVE;
@@ -2449,7 +2477,10 @@ move_timeout_handler(gpointer data)
widget = panel->currently_dragged_applet->applet;
-#if GTK_CHECK_VERSION (3, 0, 0)
+#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)
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
@@ -2892,7 +2923,11 @@ panel_widget_reparent (PanelWidget *old_panel,
panel_widget_reset_saved_focus (old_panel);
if (gtk_container_get_focus_child (GTK_CONTAINER (old_panel)) == applet)
focus_widget = gtk_window_get_focus (GTK_WINDOW (old_panel->toplevel));
- gtk_widget_reparent (applet, GTK_WIDGET (new_panel));
+
+ g_object_ref (applet);
+ gtk_container_remove (GTK_CONTAINER (old_panel), applet);
+ gtk_container_add (GTK_CONTAINER (new_panel), applet);
+ g_object_unref (applet);
if (info && info->type == PANEL_OBJECT_APPLET)
mate_panel_applet_frame_set_panel (MATE_PANEL_APPLET_FRAME (ad->applet), new_panel);