[maemo-commits] [maemo-commits] r9247 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gdk/x11
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue Jan 23 13:16:48 EET 2007
- Previous message: [maemo-commits] r9246 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gdk/x11
- Next message: [maemo-commits] r9248 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: mitch Date: 2007-01-23 13:16:47 +0200 (Tue, 23 Jan 2007) New Revision: 9247 Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog projects/haf/branches/gtk+/maemo-gtk-2-10/gdk/x11/gdkinput-x11.c projects/haf/branches/gtk+/maemo-gtk-2-10/gdk/x11/gdkinput.c Log: 2007-01-23 Michael Natterer <mitch at imendio.com> Merge remaining gdkinput changes: 2006-11-28 Tommi Komulainen <tommi.komulainen at nokia.com> * gdk/x11/gdkinput-x11.c (_gdk_input_common_other_event): Call _gdk_event_button_generate to get GDK_2BUTTON_PRESS events properly synthesized. NB#48648 2006-11-27 Tommi Komulainen <tommi.komulainen at nokia.com> * gdk/x11/gdkinput.c (gdk_input_set_extension_events): Stop leaking memory when called multiple times to enable extension events. Get the root relative geometry in case we're called after ConfigureNotify. 2006-11-07 Tommi Komulainen <tommi.komulainen at nokia.com> * gdk/x11/gdkinput-x11.c (gdk_input_translate_coordinates): When maximum value for x/y axis is -1 or 0 use the screen size. NB#46445, #371930 2006-09-18 Tommi Komulainen <tommi.komulainen at nokia.com> * gdk/x11/gdkinput-x11.c (gdk_input_device_new): Always enable extension events for 'pen' devices to get touchscreen pressure. Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-01-23 10:31:29 UTC (rev 9246) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-01-23 11:16:47 UTC (rev 9247) @@ -1,5 +1,32 @@ 2007-01-23 Michael Natterer <mitch at imendio.com> + Merge remaining gdkinput changes: + + 2006-11-28 Tommi Komulainen <tommi.komulainen at nokia.com> + + * gdk/x11/gdkinput-x11.c (_gdk_input_common_other_event): Call + _gdk_event_button_generate to get GDK_2BUTTON_PRESS events properly + synthesized. NB#48648 + + 2006-11-27 Tommi Komulainen <tommi.komulainen at nokia.com> + + * gdk/x11/gdkinput.c (gdk_input_set_extension_events): Stop leaking + memory when called multiple times to enable extension events. Get the + root relative geometry in case we're called after ConfigureNotify. + + 2006-11-07 Tommi Komulainen <tommi.komulainen at nokia.com> + + * gdk/x11/gdkinput-x11.c (gdk_input_translate_coordinates): When + maximum value for x/y axis is -1 or 0 use the screen size. NB#46445, + #371930 + + 2006-09-18 Tommi Komulainen <tommi.komulainen at nokia.com> + + * gdk/x11/gdkinput-x11.c (gdk_input_device_new): Always enable + extension events for 'pen' devices to get touchscreen pressure. + +2007-01-23 Michael Natterer <mitch at imendio.com> + * gdk/x11/gdkinput-xfree.c: g_return_if_fail on the right objects. 2007-01-19 Michael Natterer <mitch at imendio.com> Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gdk/x11/gdkinput-x11.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gdk/x11/gdkinput-x11.c 2007-01-23 10:31:29 UTC (rev 9246) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gdk/x11/gdkinput-x11.c 2007-01-23 11:16:47 UTC (rev 9247) @@ -242,6 +242,15 @@ gdkdev->proximityout_type = 0; gdkdev->changenotify_type = 0; + /* MAEMO START */ + /* always enable extension events to get touchscreen pressure */ + if (gdkdev->info.source == GDK_SOURCE_PEN) + { + if (!gdk_device_set_mode (&gdkdev->info, GDK_MODE_SCREEN)) + g_warning ("Failed to enable pressure on `%s'", gdkdev->info.name); + } + /* MAEMO END */ + return gdkdev; error: @@ -447,12 +456,22 @@ break; } } - - device_width = gdkdev->axes[x_axis].max_value - - gdkdev->axes[x_axis].min_value; - device_height = gdkdev->axes[y_axis].max_value - - gdkdev->axes[y_axis].min_value; + /* Xi spec allows max_value be unset (0 or -1 usually) meaning + * bounded to screen size + */ + if (gdkdev->axes[x_axis].max_value <= 0) + device_width = gdk_screen_get_width (gdk_drawable_get_screen (input_window->window)); + else + device_width = (gdkdev->axes[x_axis].max_value - + gdkdev->axes[x_axis].min_value); + + if (gdkdev->axes[y_axis].max_value <= 0) + device_height = gdk_screen_get_height (gdk_drawable_get_screen (input_window->window)); + else + device_height = (gdkdev->axes[y_axis].max_value - + gdkdev->axes[y_axis].min_value); + if (gdkdev->info.mode == GDK_MODE_SCREEN) { x_scale = gdk_screen_get_width (gdk_drawable_get_screen (input_window->window)) / device_width; @@ -579,6 +598,10 @@ event->button.state = gdk_input_translate_state(xdbe->state,xdbe->device_state); event->button.button = xdbe->button; + if (event->button.type == GDK_BUTTON_PRESS) + _gdk_event_button_generate (gdk_drawable_get_display (event->button.window), + event); + GDK_NOTE (EVENTS, g_print ("button %s:\t\twindow: %ld device: %ld x,y: %f %f button: %d\n", (event->button.type == GDK_BUTTON_PRESS) ? "press" : "release", Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gdk/x11/gdkinput.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gdk/x11/gdkinput.c 2007-01-23 10:31:29 UTC (rev 9246) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gdk/x11/gdkinput.c 2007-01-23 11:16:47 UTC (rev 9247) @@ -313,29 +313,42 @@ if (mode == GDK_EXTENSION_EVENTS_NONE) mask = 0; + iw = _gdk_input_window_find (window); + if (mask != 0) { - iw = g_new(GdkInputWindow,1); + if (!iw) + { + iw = g_new(GdkInputWindow,1); - iw->window = window; - iw->mode = mode; + iw->window = window; + iw->mode = mode; - iw->obscuring = NULL; - iw->num_obscuring = 0; - iw->grabbed = FALSE; + iw->obscuring = NULL; + iw->num_obscuring = 0; + iw->grabbed = FALSE; - display_x11->input_windows = g_list_append(display_x11->input_windows,iw); + display_x11->input_windows = g_list_append(display_x11->input_windows,iw); + } + window_private->extension_events = mask; +#ifndef XINPUT_NONE /* Add enter window events to the event mask */ - /* FIXME, this is not needed for XINPUT_NONE */ + /* this is not needed for XINPUT_NONE */ gdk_window_set_events (window, gdk_window_get_events (window) | GDK_ENTER_NOTIFY_MASK); + + /* we might not receive ConfigureNotify so get the root_relative_geometry + * now, just in case */ + _gdk_input_get_root_relative_geometry (GDK_WINDOW_XDISPLAY (window), + GDK_WINDOW_XWINDOW (window), + &iw->root_x, &iw->root_y, NULL, NULL); +#endif /* !XINPUT_NONE */ } else { - iw = _gdk_input_window_find (window); if (iw) { display_x11->input_windows = g_list_remove(display_x11->input_windows,iw);
- Previous message: [maemo-commits] r9246 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gdk/x11
- Next message: [maemo-commits] r9248 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]