# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1327321853 0 # Node ID 58ed65820baf68c0afca554f46b4596c597e926c # Parent ae5e322584cdc741e027e3ec5149a667dbd2d394 Eliminate even more deprecated APIs for GTK3... still more to go. diff -r ae5e322584cd -r 58ed65820baf gtk3/dw.c --- a/gtk3/dw.c Sun Jan 22 19:02:10 2012 +0000 +++ b/gtk3/dw.c Mon Jan 23 12:30:53 2012 +0000 @@ -684,7 +684,7 @@ if(gtk_widget_get_visible(child->widget)) { - gtk_widget_get_child_requisition (child->widget, &child_requisition); + gtk_widget_get_preferred_size (child->widget, NULL, &child_requisition); child_allocation.x = 0; child_allocation.y = 0; switch (child->state) @@ -835,12 +835,13 @@ return FALSE; if (mdi->drag_button < 0) { - if (gdk_pointer_grab (event->button.window, + if (gdk_device_grab (gdk_event_get_device(event), + event->button.window, + GDK_OWNERSHIP_WINDOW, FALSE, GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_RELEASE_MASK, NULL, - NULL, event->button.time) != GDK_GRAB_SUCCESS) return FALSE; @@ -859,7 +860,7 @@ { int x, y; - gdk_pointer_ungrab (event->button.time); + gdk_device_ungrab (gdk_event_get_device(event), event->button.time); mdi->drag_button = -1; x = event->button.x + child->x - mdi->drag_start.x; @@ -876,7 +877,7 @@ if (mdi->drag_button < 0) return FALSE; - gdk_window_get_pointer (gtk_widget_get_window(widget), &x, &y, NULL); + gdk_window_get_device_position (gtk_widget_get_window(widget), gdk_event_get_device(event), &x, &y, NULL); x = x - mdi->drag_start.x + child->x; @@ -910,12 +911,13 @@ case GDK_BUTTON_PRESS: if (mdi->drag_button < 0) { - if (gdk_pointer_grab (event->button.window, + if (gdk_device_grab (gdk_event_get_device(event), + event->button.window, + GDK_OWNERSHIP_WINDOW, FALSE, GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_RELEASE_MASK, NULL, - NULL, event->button.time) != GDK_GRAB_SUCCESS) return FALSE; @@ -944,7 +946,7 @@ int width, height; GtkAllocation allocation; - gdk_pointer_ungrab (event->button.time); + gdk_device_ungrab (gdk_event_get_device(event), event->button.time); mdi->drag_button = -1; gtk_widget_get_allocation(widget, &allocation); @@ -968,7 +970,7 @@ if (mdi->drag_button < 0) return FALSE; - gdk_window_get_pointer (gtk_widget_get_window(widget), &x, &y, NULL); + gdk_window_get_device_position (gtk_widget_get_window(widget), gdk_event_get_device(event), &x, &y, NULL); gtk_widget_get_allocation(widget, &allocation); width = x + allocation.x; @@ -1219,10 +1221,10 @@ { int (*motionfunc)(HWND, int, int, int, void *) = work.func; int keys = 0, x, y; - GdkModifierType state; + GdkModifierType state = 0; if (event->is_hint) - gdk_window_get_pointer (event->window, &x, &y, &state); + gdk_window_get_device_position (event->window, gdk_event_get_device((GdkEvent *)event), &x, &y, &state); else { x = event->x; @@ -1837,7 +1839,7 @@ if(!_dw_share_path[0] && !getcwd(_dw_share_path, PATH_MAX)) _dw_share_path[0] = '/'; -#if !GLIB_CHECK_VERSION(2,32,0) +#if !GLIB_CHECK_VERSION(2,31,0) g_thread_init(NULL); #endif gdk_threads_init(); @@ -2852,6 +2854,8 @@ return 0; } +static GdkDeviceManager *manager = NULL; + /* * Captures the mouse input to this window. * Parameters: @@ -2862,7 +2866,14 @@ int _locked_by_me = FALSE; DW_MUTEX_LOCK; - gdk_pointer_grab(gtk_widget_get_window(handle), TRUE, GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK, NULL, NULL, GDK_CURRENT_TIME); + manager = gdk_display_get_device_manager(gtk_widget_get_display(handle)); + gdk_device_grab(gdk_device_manager_get_client_pointer(manager), + gtk_widget_get_window(handle), + GDK_OWNERSHIP_WINDOW, + FALSE, + GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK, + NULL, + GDK_CURRENT_TIME); DW_MUTEX_UNLOCK; } @@ -2890,7 +2901,7 @@ if(handle && gtk_widget_get_window(handle)) gdk_window_set_cursor(gtk_widget_get_window(handle), cursor); if(cursor) - gdk_cursor_unref(cursor); + g_object_unref(cursor); DW_MUTEX_UNLOCK; } @@ -2902,7 +2913,8 @@ int _locked_by_me = FALSE; DW_MUTEX_LOCK; - gdk_pointer_ungrab(GDK_CURRENT_TIME); + gdk_device_ungrab(gdk_device_manager_get_client_pointer(manager), GDK_CURRENT_TIME); + manager = NULL; DW_MUTEX_UNLOCK; } @@ -3566,13 +3578,18 @@ */ void dw_pointer_query_pos(long *x, long *y) { - GdkModifierType state; + GdkModifierType state = 0; int gx, gy; int _locked_by_me = FALSE; + GdkDisplay *display; + GdkDeviceManager *manager; DW_MUTEX_LOCK; #ifdef GDK_WINDOWING_X11 - gdk_window_get_pointer (gdk_x11_window_lookup_for_display(gdk_display_get_default(), GDK_ROOT_WINDOW()), &gx, &gy, &state); + display = gdk_display_get_default(); + manager = gdk_display_get_device_manager(display); + gdk_window_get_device_position (gdk_x11_window_lookup_for_display(display, GDK_ROOT_WINDOW()), + gdk_device_manager_get_client_pointer(manager), &gx, &gy, &state); #endif if(x) *x = gx; @@ -3590,10 +3607,14 @@ void dw_pointer_set_pos(long x, long y) { int _locked_by_me = FALSE; + GdkDisplay *display; + GdkDeviceManager *manager; DW_MUTEX_LOCK; #ifdef GDK_WINDOWING_X11 - gdk_display_warp_pointer( gdk_display_get_default(), gdk_screen_get_default(), x, y ); + display = gdk_display_get_default(); + manager = gdk_display_get_device_manager(display); + gdk_device_warp( gdk_device_manager_get_client_pointer(manager), gdk_screen_get_default(), x, y ); #endif DW_MUTEX_UNLOCK; } @@ -3934,7 +3955,7 @@ DW_MUTEX_LOCK; /* Create box for image and label */ - box = gtk_hbox_new (FALSE, 0); + box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_set_border_width (GTK_CONTAINER (box), 2); /* Create a new button */ @@ -4071,10 +4092,7 @@ DW_MUTEX_LOCK; adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, (gfloat)increments, 1, 1, 1); - if(vertical) - tmp = gtk_vscale_new(adjustment); - else - tmp = gtk_hscale_new(adjustment); + tmp = gtk_scale_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment); gtk_widget_show(tmp); gtk_scale_set_draw_value(GTK_SCALE(tmp), 0); gtk_scale_set_digits(GTK_SCALE(tmp), 0); @@ -4100,10 +4118,7 @@ DW_MUTEX_LOCK; adjustment = (GtkAdjustment *)gtk_adjustment_new(0, 0, 0, 1, 1, 1); - if(vertical) - tmp = gtk_vscrollbar_new(adjustment); - else - tmp = gtk_hscrollbar_new(adjustment); + tmp = gtk_scrollbar_new(vertical ? GTK_ORIENTATION_VERTICAL : GTK_ORIENTATION_HORIZONTAL, adjustment); gtk_widget_set_can_focus(tmp, FALSE); gtk_widget_show(tmp); g_object_set_data(G_OBJECT(tmp), "_dw_adjustment", (gpointer)adjustment); @@ -6256,7 +6271,7 @@ /* Make sure it is the correct tree type */ if(cont && GTK_IS_TREE_VIEW(cont) && g_object_get_data(G_OBJECT(cont), "_dw_tree_type") == GINT_TO_POINTER(_DW_TREE_TYPE_CONTAINER)) { - GtkAdjustment *adjust = gtk_tree_view_get_vadjustment(GTK_TREE_VIEW(cont)); + GtkAdjustment *adjust = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(cont)); if(adjust) { @@ -9007,7 +9022,7 @@ else if((vert & 0xf) == DW_GRAV_BOTTOM) newy = gdk_screen_height() - height - y; -#if GTK_CHECK_VERSION(3,4,0) +#if GTK_CHECK_VERSION(3,3,8) /* Adjust the values to avoid Gnome bar if requested */ if((horz | vert) & DW_GRAV_OBSTACLES) { @@ -10045,10 +10060,7 @@ float *percent = malloc(sizeof(float)); DW_MUTEX_LOCK; - if(type == DW_HORZ) - tmp = gtk_hpaned_new(); - else - tmp = gtk_vpaned_new(); + tmp = gtk_paned_new(type == DW_HORZ ? GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL); gtk_paned_pack1(GTK_PANED(tmp), topleft, TRUE, FALSE); gtk_paned_pack2(GTK_PANED(tmp), bottomright, TRUE, FALSE); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id));