]> Pileus Git - ~andy/gtk/log
~andy/gtk
12 years agoUpdated Hungarian translation
Gabor Kelemen [Fri, 2 Mar 2012 23:39:00 +0000 (00:39 +0100)]
Updated Hungarian translation

12 years agoIconification using _NET_WM_STATE_HIDDEN hint if supported by WM
Mikael Magnusson [Tue, 21 Feb 2012 16:14:16 +0000 (17:14 +0100)]
Iconification using _NET_WM_STATE_HIDDEN hint if supported by WM

If the Window Manager supports the _NET_WM_STATE_HIDDEN, we use it to use
the _NET_WM_STATE protocol when de-iconifying windows (iconification is
unchanged, via XIconifyWindow). Additionally, we no longer interpret all
UnmapNotify events for our window as the result of iconification.

(Based on patch by Tomas Frydrych <tf@linux.intel.com>)

12 years agoUpdated POTFILES.in and POTFILES.skip
Piotr Drąg [Fri, 2 Mar 2012 19:31:46 +0000 (20:31 +0100)]
Updated POTFILES.in and POTFILES.skip

12 years agoAnnotate gdk_window_get_frame_extents
Paolo Borelli [Wed, 29 Feb 2012 18:40:41 +0000 (19:40 +0100)]
Annotate gdk_window_get_frame_extents

"rect" is an output parameter

12 years agoimage: handle PROP_STORAGE_TYPE in get_property()
Cosimo Cecchi [Fri, 2 Mar 2012 17:47:59 +0000 (12:47 -0500)]
image: handle PROP_STORAGE_TYPE in get_property()

Fallout from GtkIconHelper transition.

12 years agoGtkColorChooser: Correct the signal registration
Murray Cumming [Fri, 2 Mar 2012 17:29:33 +0000 (18:29 +0100)]
GtkColorChooser: Correct the signal registration

12 years agoxi2: add some debug output for smooth scroll events
Matthias Clasen [Fri, 2 Mar 2012 14:55:55 +0000 (09:55 -0500)]
xi2: add some debug output for smooth scroll events

12 years agogtk-demo: fix the colorsel example
Matthias Clasen [Fri, 2 Mar 2012 14:37:10 +0000 (09:37 -0500)]
gtk-demo: fix the colorsel example

It is necessary to hide the dialog on "response", else it won't
go away.

12 years agoUpdated Spanish translation
Daniel Mustieles [Fri, 2 Mar 2012 13:19:25 +0000 (14:19 +0100)]
Updated Spanish translation

12 years agoRequire XInput2.h in X11 backend
Javier Jardón [Fri, 2 Mar 2012 12:52:12 +0000 (12:52 +0000)]
Require XInput2.h in X11 backend

Also remove support for XInput.h

12 years agoreftests: Add a rendering test for sibling matching
Benjamin Otte [Fri, 2 Mar 2012 01:16:30 +0000 (02:16 +0100)]
reftests: Add a rendering test for sibling matching

12 years agotests: Add parsing tests for sibling selectors
Benjamin Otte [Fri, 2 Mar 2012 01:05:26 +0000 (02:05 +0100)]
tests: Add parsing tests for sibling selectors

12 years agoselector: Add sibling seletors
Benjamin Otte [Fri, 2 Mar 2012 01:04:15 +0000 (02:04 +0100)]
selector: Add sibling seletors

"a + b" and "a ~ b" selectors now work, provided the widget supports
siblings.

12 years agoselector: Pass the sibling id around all the time
Benjamin Otte [Fri, 2 Mar 2012 00:27:11 +0000 (01:27 +0100)]
selector: Pass the sibling id around all the time

The reason for this will become apparent with the followup patches.

12 years agoselector: Redo from list to array
Benjamin Otte [Thu, 1 Mar 2012 17:33:33 +0000 (18:33 +0100)]
selector: Redo from list to array

Should save ~30% of memory

12 years agoselector: Introduce gtk_css_selector_previous()
Benjamin Otte [Thu, 1 Mar 2012 16:40:19 +0000 (17:40 +0100)]
selector: Introduce gtk_css_selector_previous()

12 years agotests: Add a test for using the same selector multiple times
Benjamin Otte [Thu, 1 Mar 2012 15:39:52 +0000 (16:39 +0100)]
tests: Add a test for using the same selector multiple times

12 years agocss: Rewrite selectors
Benjamin Otte [Thu, 16 Feb 2012 14:16:18 +0000 (15:16 +0100)]
css: Rewrite selectors

Previously we kept a Selector object for every "simple selector" (term
from CSS spec). Now we keep one for every match operation. So given the
selector
  ".a b:focus"
we will have 4 elements:
  - pseudoclass ":focus"
  - element "b"
  - match any desendant (the space)
  - class ".a"
Each of those is represented by a "selector class" which is basically
the collection of vfuncs for this selector.

12 years agoselector: Remove a misleading error message
Benjamin Otte [Wed, 15 Feb 2012 16:18:22 +0000 (17:18 +0100)]
selector: Remove a misleading error message

Duplicate selectors are indeed fine and shouldn't cause errors.
You want to use them to up specificity.

12 years agocss: Move selector parsing code into a custom function
Benjamin Otte [Wed, 15 Feb 2012 14:42:00 +0000 (15:42 +0100)]
css: Move selector parsing code into a custom function

12 years agoQuartz: Fix incompatible types in assignment
John Ralls [Fri, 2 Mar 2012 01:00:35 +0000 (17:00 -0800)]
Quartz: Fix incompatible types in assignment

NSEvent -scrollingDeltaX and -scrollingDeltaY aren't defined before
10.7, so objc assumes that they return a pointer. Trying to cast to a
float generates a compiler error.

12 years agoFix compile error from splitting bitmask code
John Ralls [Thu, 1 Mar 2012 20:08:57 +0000 (12:08 -0800)]
Fix compile error from splitting bitmask code

GtkBitMask was typedef'd twice.

12 years agoBug 655065 Build failure on OS X 10.7 Lion
John Ralls [Thu, 1 Mar 2012 20:04:25 +0000 (12:04 -0800)]
Bug 655065 Build failure on OS X 10.7 Lion

Remove LDDADS and setting each object file's LDDAD to it; just set a global LDDAD.

12 years agoUpdated Serbian translation
Мирослав Николић [Thu, 1 Mar 2012 21:53:57 +0000 (22:53 +0100)]
Updated Serbian translation

12 years agoFix build with XI2.x for x < 2
Matthias Clasen [Thu, 1 Mar 2012 21:45:23 +0000 (16:45 -0500)]
Fix build with XI2.x for x < 2

12 years agorange: Use the correct size for scaling
Matthias Clasen [Wed, 29 Feb 2012 04:02:01 +0000 (23:02 -0500)]
range: Use the correct size for scaling

When scaling the scroll delta, always use the 'large' dimension
of a range widget. When dx was 0, the code code accidentally
use the small dimension.

12 years agogdk,xi2: Ensure scroll valuators are reset on window/device switch
Carlos Garnacho [Thu, 23 Feb 2012 17:24:37 +0000 (18:24 +0100)]
gdk,xi2: Ensure scroll valuators are reset on window/device switch

This is in order to avoid scrolling glitches as the device causing
scrolling to happen or the Window receiving the events changes.

12 years agoscalebutton: Set GDK_SCROLL_MASK explicitly
Carlos Garnacho [Thu, 23 Feb 2012 13:47:13 +0000 (14:47 +0100)]
scalebutton: Set GDK_SCROLL_MASK explicitly

selecting for button press/release doesn't suffice anymore to
get scroll events.

12 years agospinbutton: Set GDK_SCROLL_MASK explicitly
Carlos Garnacho [Thu, 23 Feb 2012 13:46:47 +0000 (14:46 +0100)]
spinbutton: Set GDK_SCROLL_MASK explicitly

selecting for button press/release doesn't suffice anymore to
get scroll events.

12 years agocalendar: Set GDK_SCROLL_MASK explicitly
Carlos Garnacho [Thu, 23 Feb 2012 13:45:18 +0000 (14:45 +0100)]
calendar: Set GDK_SCROLL_MASK explicitly

selecting for button press/release doesn't suffice anymore to
get scroll events.

12 years agomenu: Handle smooth scrolling
Carlos Garnacho [Thu, 23 Feb 2012 13:14:33 +0000 (14:14 +0100)]
menu: Handle smooth scrolling

event->scroll.delta_y will be used to scroll the menu contents,
GDK_SMOOTH_SCROLL_MASK has been set as well

12 years agoviewport: set GDK_SMOOTH_SCROLL_MASK
Carlos Garnacho [Tue, 24 Jan 2012 11:18:45 +0000 (12:18 +0100)]
viewport: set GDK_SMOOTH_SCROLL_MASK

This is so smooth scroll events are send/handled by the
parent GtkScrolledWindow if any.

12 years agotreeview: set GDK_SMOOTH_SCROLL_MASK
Carlos Garnacho [Tue, 24 Jan 2012 11:18:27 +0000 (12:18 +0100)]
treeview: set GDK_SMOOTH_SCROLL_MASK

This is so smooth scroll events are send/handled by the
parent GtkScrolledWindow if any.

12 years agolayout: set GDK_SMOOTH_SCROLL_MASK
Carlos Garnacho [Tue, 24 Jan 2012 11:17:42 +0000 (12:17 +0100)]
layout: set GDK_SMOOTH_SCROLL_MASK

This is so smooth scroll events are send/handled by the
parent GtkScrolledWindow if any.

12 years agoiconview: set GDK_SMOOTH_SCROLL_MASK
Carlos Garnacho [Tue, 24 Jan 2012 11:16:08 +0000 (12:16 +0100)]
iconview: set GDK_SMOOTH_SCROLL_MASK

This is so smooth scroll events are send/handled by the
parent GtkScrolledWindow if any.

12 years agogtk: Implement smooth scrolling in scrolledwindow/range
Michael Natterer [Tue, 24 Jan 2012 11:12:34 +0000 (12:12 +0100)]
gtk: Implement smooth scrolling in scrolledwindow/range

If delta_x/y information is provided in scroll events, use it
to modify the underlying adjustment in steps proportional to
the deltas provided.

If the child widget of a scrolledwindow doesn't set
GDK_SMOOTH_SCROLL_MASK, regular scroll events will be dispatched,
and still handled by these 2 widgets.

12 years agodevicemanager,xi2: Implement smooth scrolling
Carlos Garnacho [Mon, 23 Jan 2012 23:49:52 +0000 (00:49 +0100)]
devicemanager,xi2: Implement smooth scrolling

XInput >= 2.1 allows for implementing smooth scrolling,
reporting the different scrolling axes as valuators.
Any change in those will be reported as GdkEventScroll
events with delta_x/y information.

the older kind of scroll events is still handled, and
emulated in devices able to provide smooth scrolling,
setting _gdk_event_set_pointer_emulated() in that case.

12 years agodevicemanager,x11: Initialize event->scroll.delta_x/y to 0 on core events
Carlos Garnacho [Mon, 23 Jan 2012 23:46:43 +0000 (00:46 +0100)]
devicemanager,x11: Initialize event->scroll.delta_x/y to 0 on core events

12 years agoquartz: Implement smooth scrolling
Michael Natterer [Mon, 23 Jan 2012 23:41:49 +0000 (00:41 +0100)]
quartz: Implement smooth scrolling

nsevent scrollingDeltaX/Y (available on OSX >= Lion) is used to
provide the smooth scrolling values. In any case, old fashioned
events are still sent, setting _gdk_event_set_pointer_emulated()
if the event contains both smooth and non-smooth values.

12 years agogdk: update csw event mask filter to handle smooth scroll
Carlos Garnacho [Mon, 23 Jan 2012 23:28:25 +0000 (00:28 +0100)]
gdk: update csw event mask filter to handle smooth scroll

Events of type GDK_SCROLL will be received if the client side window
event mask has either GDK_SCROLL_MASK or GDK_SMOOTH_SCROLL_MASK.

GDK_BUTTON_PRESS_MASK has been removed from type_masks[GDK_SCROLL]
as that bit is often set for other-than-scrolling purposes, and
yet have the window receive scroll events. In GTK+, this forces
non-smooth events bubbling, even if the widgets above want smooth
events, and legitimately set GDK_[SMOOTH_]SCROLL_MASK.

12 years agogdk: Filter out either smooth or non-smooth event depending on the evmask
Carlos Garnacho [Mon, 23 Jan 2012 23:09:40 +0000 (00:09 +0100)]
gdk: Filter out either smooth or non-smooth event depending on the evmask

If a device provides both smooth and non-smooth events, the latter will be
flagged with _gdk_event_set_pointer_emulated() so the client side window
receives one or the other. If a device is only able to deliver non-smooth
events, those will be sent, so both direction/deltas may need to be handled.

12 years agogdk: Add GDK_SMOOTH_SCROLL_MASK
Carlos Garnacho [Mon, 23 Jan 2012 23:05:39 +0000 (00:05 +0100)]
gdk: Add GDK_SMOOTH_SCROLL_MASK

By setting this event, a GdkWindow will receive scroll events
that provide delta values.

12 years agogdk: transfer event->scroll.delta_x/y through csw
Michael Natterer [Mon, 23 Jan 2012 23:01:39 +0000 (00:01 +0100)]
gdk: transfer event->scroll.delta_x/y through csw

12 years agogdk: deal with GDK_SMOOTH_SCROLL events as not having a direction
Carlos Garnacho [Mon, 23 Jan 2012 22:51:24 +0000 (23:51 +0100)]
gdk: deal with GDK_SMOOTH_SCROLL events as not having a direction

gdk_event_get_scroll_direction() will return FALSE on these, so
gdk_event_get_scroll_deltas() has to be used to retrieve dx/dy

12 years agogdk: Add delta_x/y to scroll events
Michael Natterer [Mon, 23 Jan 2012 22:37:44 +0000 (23:37 +0100)]
gdk: Add delta_x/y to scroll events

gdk_event_get_scroll_deltas() can be used to retrieve those
values on smooth scroll events.

12 years agogdk: Add GDK_SCROLL_SMOOTH to GdkScrollDirection
Carlos Garnacho [Mon, 23 Jan 2012 22:45:26 +0000 (23:45 +0100)]
gdk: Add GDK_SCROLL_SMOOTH to GdkScrollDirection

This value will be used for smooth scroll events, as they'll
express the scrolling direction in terms of dx/dy.

12 years agogdk: Get the right event window for pointer emulated events
Carlos Garnacho [Mon, 27 Feb 2012 12:09:59 +0000 (13:09 +0100)]
gdk: Get the right event window for pointer emulated events

get_event_window() just checked on GDK_TOUCH_MASK, including for emulated
pointer events, so at the very least those should also match evmasks with
no touch events whatsoever

12 years agogdk: Set correct GdkModifierType on pointer emulated events
Carlos Garnacho [Mon, 27 Feb 2012 12:08:38 +0000 (13:08 +0100)]
gdk: Set correct GdkModifierType on pointer emulated events

12 years agogdk: translate correctly from touch events into emulated pointer events
Carlos Garnacho [Mon, 27 Feb 2012 11:32:01 +0000 (12:32 +0100)]
gdk: translate correctly from touch events into emulated pointer events

12 years agogdk: Don't treat touch events as button events
Matthias Clasen [Sun, 26 Feb 2012 05:04:39 +0000 (00:04 -0500)]
gdk: Don't treat touch events as button events

One more place where we assumed that touch events have a button
field.

12 years agogdk: Use the last alive grab in order to get the event window
Matthias Clasen [Thu, 1 Mar 2012 15:44:10 +0000 (10:44 -0500)]
gdk: Use the last alive grab in order to get the event window

If an active grab kicks in on a different window, _gdk_display_has_device_grab()
would still find the former implicit grab for the window below the pointer, thus
sending events to an unrelated place.

12 years agogdk: Don't mutate pointer events to touch events just because a grab says so
Carlos Garnacho [Tue, 21 Feb 2012 10:22:49 +0000 (11:22 +0100)]
gdk: Don't mutate pointer events to touch events just because a grab says so

If a grab with GDK_TOUCH_MASK kicks in due to a touch sequence emulating pointer
events, don't mutate the sequence into emitting touch events right away.

12 years agogdk: Let implicit touch grabs coexist with an implicit pointer grab
Carlos Garnacho [Tue, 21 Feb 2012 02:27:51 +0000 (03:27 +0100)]
gdk: Let implicit touch grabs coexist with an implicit pointer grab

Create the backing GdkTouchGrabInfo for touches even if the pointer
emulating touch sequence is already holding an implicit grab on a
window that didn't select for touch events.

12 years agogdk: Don't fully destroy the implicit touch grab on ::grab-broken
Carlos Garnacho [Tue, 21 Feb 2012 02:12:10 +0000 (03:12 +0100)]
gdk: Don't fully destroy the implicit touch grab on ::grab-broken

the backing GdkTouchGrabInfo will be needed if the overriding device
grab finishes before the touch does in order to send events back to
the implicit grab window. Instead, wait until the touch is physically
finished before removing the matching GdkTouchGrabInfo

12 years agogdk: Listen to touch events by default on the native window
Carlos Garnacho [Thu, 5 Jan 2012 00:04:15 +0000 (01:04 +0100)]
gdk: Listen to touch events by default on the native window

GDK will only receive touch events when dealing with a multitouch
device, so these must be transformed to pointer events if the
client-side window receiving the event doesn't listen to touch
events, and the touch sequence the event is from does emulate
the pointer.

If a sequence emulates pointer events, it will result in a
button-press, N motions with GDK_BUTTON1_MASK set and a
button-release event, and it will deliver crossing events
as specified by the current device grab.

12 years agogdk: Only trigger motion hints machinery on motion events
Carlos Garnacho [Thu, 5 Jan 2012 00:00:19 +0000 (01:00 +0100)]
gdk: Only trigger motion hints machinery on motion events

Touch events have no need for it, plus the concept behind
gdk_event_request_motions() doesn't wrap around multiple
touches within a device.

12 years agogdk: Have touch grabs behave like the implicit grab wrt crossing events
Carlos Garnacho [Wed, 4 Jan 2012 23:51:32 +0000 (00:51 +0100)]
gdk: Have touch grabs behave like the implicit grab wrt crossing events

These are equivalent to an implicit grab (with !owner_events), so
if the touch leaves or enters the grab window, the other window
won't receive the corresponding counter-event.

12 years agogdk: handle implicit touch grabs
Carlos Garnacho [Wed, 28 Dec 2011 23:06:45 +0000 (00:06 +0100)]
gdk: handle implicit touch grabs

If the touch sequence happens on a window with GDK_TOUCH_MASK set,
a GdkTouchGrabInfo is created to back it up. Else a device grab is
only created if the sequence emulates the pointer.

If both a device and a touch grab are present on a window, the later
of them both is obeyed, Any grab on the device happening after a
touch grab generates grab-broken on all the windows an implicit
touch grab was going on.

12 years agogdk: Add internal API to deal with touch implicit grabs
Carlos Garnacho [Wed, 28 Dec 2011 01:14:18 +0000 (02:14 +0100)]
gdk: Add internal API to deal with touch implicit grabs

The necessary information about a touch implicit grab is stored in
GdkTouchGrabInfo structs, these are meant to be transient to the
touch sequence.

12 years agogdk: Don't change window_under_pointer for pure touch events
Carlos Garnacho [Wed, 28 Dec 2011 01:09:59 +0000 (02:09 +0100)]
gdk: Don't change window_under_pointer for pure touch events

Only touch events that emulate the pointer do change it.

12 years agobutton: Handle touch events
Carlos Garnacho [Wed, 4 Jan 2012 23:35:04 +0000 (00:35 +0100)]
button: Handle touch events

Touch events don't generate crossing events themselves, so
do not rely on these to determine whether the button release
happened within the event window.

12 years agorange: Have slider jump to the pointer coordinates on touch devices
Carlos Garnacho [Wed, 4 Jan 2012 23:21:36 +0000 (00:21 +0100)]
range: Have slider jump to the pointer coordinates on touch devices

This widget is too narrow to make touch interaction tricky enough, so
don't add the penalty of having the slider run farther from the touch
coordinates if it happens to miss the slider.

12 years agomenus: Don't popdown submenus on button release for touch devices
Carlos Garnacho [Mon, 12 Dec 2011 19:07:57 +0000 (20:07 +0100)]
menus: Don't popdown submenus on button release for touch devices

This is so submenus stay open as the parent menu item is
pressed/released, since the user would typically lift the
finger in order to select a submenu item.

12 years agosettings: Deprecate gtk-touchscreen-mode
Carlos Garnacho [Mon, 12 Dec 2011 18:19:03 +0000 (19:19 +0100)]
settings: Deprecate gtk-touchscreen-mode

It's not used anywhere in GTK+ anymore.

12 years agorange: Remove gtk-touchscreen-mode usage
Carlos Garnacho [Mon, 12 Dec 2011 18:14:43 +0000 (19:14 +0100)]
range: Remove gtk-touchscreen-mode usage

Emulated crossing events with mode GDK_CROSSING_TOUCH_PRESS/RELEASE
already cater dynamically for the "don't prelight on touch devices"
usecase.

12 years agotogglebutton: Remove gtk-touchcreen-mode usage
Carlos Garnacho [Mon, 12 Dec 2011 18:11:41 +0000 (19:11 +0100)]
togglebutton: Remove gtk-touchcreen-mode usage

Emulated crossing events with mode GDK_CROSSING_TOUCH_PRESS/RELEASE
already cater dynamically for the "don't prelight on touch devices"
usecase.

12 years agomenushell: Remove gtk-touchscreen-mode usage
Carlos Garnacho [Mon, 12 Dec 2011 18:06:35 +0000 (19:06 +0100)]
menushell: Remove gtk-touchscreen-mode usage

This usage in a keybinding signal is hardly related to touchscreens,
so just remove it.

12 years agomenus: Remove gtk-touchscreen-mode from scrolling code
Carlos Garnacho [Mon, 12 Dec 2011 17:48:30 +0000 (18:48 +0100)]
menus: Remove gtk-touchscreen-mode from scrolling code

Scrolling is handled via ::captured-event dynamically, so remove
this now unused code.

12 years agomenus: Select the first item for touch devices
Carlos Garnacho [Mon, 12 Dec 2011 17:21:40 +0000 (18:21 +0100)]
menus: Select the first item for touch devices

This was done through gtk-touchscreen-mode. Now it is handled
dynamically on the current event source device.

12 years agomenus: Implement scrolling through event capture for touch devices
Carlos Garnacho [Mon, 12 Dec 2011 17:11:57 +0000 (18:11 +0100)]
menus: Implement scrolling through event capture for touch devices

This makes overflown menus scrollable via direct manipulation.
Once past the threshold, the item below the pointer is unselected
and scrolling starts.

12 years agomenus: Handle item selection for touch devices dynamically
Carlos Garnacho [Sun, 11 Dec 2011 17:46:50 +0000 (18:46 +0100)]
menus: Handle item selection for touch devices dynamically

Instead of using gtk-touchscreen-mode, the behavior changes depending
on the source device in use.

12 years agotooltips: Use the source device instead of gtk-touchscreen-mode
Carlos Garnacho [Sat, 26 Nov 2011 19:28:53 +0000 (20:28 +0100)]
tooltips: Use the source device instead of gtk-touchscreen-mode

This makes tooltips behavior dynamic based on the interacting device.

12 years agotests: Add new test for kinetic scrolling
Carlos Garcia Campos [Fri, 11 Feb 2011 12:46:35 +0000 (13:46 +0100)]
tests: Add new test for kinetic scrolling

12 years agotests: Add checkbox to enable kinetic scrolling in scrolled window test
Carlos Garcia Campos [Fri, 11 Feb 2011 12:45:21 +0000 (13:45 +0100)]
tests: Add checkbox to enable kinetic scrolling in scrolled window test

12 years agoviewport: select for touch events
Matthias Clasen [Thu, 1 Mar 2012 01:08:03 +0000 (20:08 -0500)]
viewport: select for touch events

This makes kinetic scrolling work with viewports where the
content does not otherwise select for button or touch events,
such as testscrolledwindow's label.

12 years agoscrolledwindow: Kinetic scrolling support
Carlos Garcia Campos [Fri, 11 Feb 2011 12:43:56 +0000 (13:43 +0100)]
scrolledwindow: Kinetic scrolling support

Kinetic scrolling is only done on touch devices, since it is
sort of meaningless on pointer devices, besides it implies
a different input event handling on child widgets that is
unnecessary there.

If the scrolling doesn't start after a long press, the scrolling is
cancelled and events are handled by child widgets normally.

When clicked again close to the previous button press location
(assuming it had ~0 movement), the scrolled window will allow
the child to handle the events immediately.

This is so the user doesn't have to wait to the press-and-hold
timeout in order to operate on the scrolledwindow child.

The innermost scrolled window always gets to capture the events, all
scrolled windows above it just let the event go through. Ideally
reaching a limit on the innermost scrolled window would propagate
the dragging up the hierarchy in order to keep following the touch
coords, although that'd involve rather evil hacks just to cater
for broken UIs.

12 years agogdk: Generate crossing events around touch devices' press/release
Carlos Garnacho [Sat, 3 Dec 2011 14:11:08 +0000 (15:11 +0100)]
gdk: Generate crossing events around touch devices' press/release

Anytime a touch device interacts, the crossing events generation
will change to a touch mode where only events with mode
GDK_CROSSING_TOUCH_BEGIN/END are handled, and those are sent
around touch begin/end. Those are virtual as the master
device may still stay on the window.

Whenever there is a switch of slave device (the user starts
using another non-touch device), a crossing event with mode
GDK_CROSSING_DEVICE_SWITCH may generated if needed, and the normal
crossing event handling is resumed.

12 years agogtk: Add a way to do event capture
Carlos Garcia Campos [Tue, 8 Feb 2011 13:49:31 +0000 (14:49 +0100)]
gtk: Add a way to do event capture

This patch adds a capture phase to GTK+'s event propagation
model. Events are first propagated from the toplevel (or the
grab widget, if a grab is in place) down to the target widget
 and then back up. The second phase is using the existing
::event signal, the new capture phase is using a private
API instead of a public signal for now.

This mechanism can be used in many places where we currently
have to prevent child widgets from getting events by putting
an input-only window over them. It will also be used to implement
kinetic scrolling in subsequent patches.

http://bugzilla.gnome.org/show_bug.cgi?id=641836

We automatically request more motion events in behalf of
the original widget if it listens to motion hints. So
the capturing widget doesn't need to handle such
implementation details.

We are not making event capture part of the public API for 3.4,
which is why there is no ::captured-event signal.

12 years agogtk: translate unhandled touch events to button events
Matthias Clasen [Sun, 26 Feb 2012 16:19:29 +0000 (11:19 -0500)]
gtk: translate unhandled touch events to button events

We don't want to fallback for 'random' touch sequences, since
that could lead to all kinds of pairedness and other violations.
Since the X server already tells us what touch events it would
have used for emulating pointer events, we just use that information
here.

12 years agogtk: Add a separate ::touch-event signal
Matthias Clasen [Fri, 24 Feb 2012 15:19:59 +0000 (10:19 -0500)]
gtk: Add a separate ::touch-event signal

12 years agogdk: Add some debug output for touch events and devices
Matthias Clasen [Wed, 29 Feb 2012 05:44:51 +0000 (00:44 -0500)]
gdk: Add some debug output for touch events and devices

12 years agoxi2: Translate touch events
Matthias Clasen [Thu, 1 Mar 2012 05:56:51 +0000 (00:56 -0500)]
xi2: Translate touch events

Translate XI_TouchBegin/Update/End to GDK_TOUCH_BEGIN/UPDATE/END
events.

At the same time,
set pointer-emulated flags on button events with XIPointerEmulated
and on touch events emulating the pointer.

12 years agogdk: Add touch event types and mask
Carlos Garnacho [Mon, 28 Feb 2011 19:53:42 +0000 (20:53 +0100)]
gdk: Add touch event types and mask

This commit introduces GDK_TOUCH_BEGIN/UPDATE/END/CANCEL
and a separate GdkEventTouch struct that they use. This
is closer to the touch event API of other platforms and
matches the xi2 events closely, too.

12 years agogdk: Add internal API to set "pointer emulated" flag on events
Carlos Garnacho [Wed, 28 Dec 2011 00:37:01 +0000 (01:37 +0100)]
gdk: Add internal API to set "pointer emulated" flag on events

This flag will be used for non-pointer events that are emulated
from eg. touch events, or pointer events being emulated.

12 years agogdk: Add GdkEventSequence
Carlos Garnacho [Tue, 1 Mar 2011 07:36:54 +0000 (08:36 +0100)]
gdk: Add GdkEventSequence

GdkEventSequence is an opaque pointer type that is used
to identify sequences of touch events that belong together.

12 years agoxi2: Use the new device types for touch-capable devices
Matthias Clasen [Thu, 1 Mar 2012 03:00:18 +0000 (22:00 -0500)]
xi2: Use the new device types for touch-capable devices

Any device with a XITouchClassInfo with num_touches > 0
qualifies as multitouch.

12 years agogdk: Add device types for touch-capable devices
Matthias Clasen [Thu, 1 Mar 2012 02:58:36 +0000 (21:58 -0500)]
gdk: Add device types for touch-capable devices

We introduce GDK_SOURCE_TOUCHSCREEN and GDK_SOURCE_TOUCHPAD
for direct and indirect touch devices, respecively. These
correspond to XIDirectTouch and XIDependentTouch in XI2.

12 years agoconfigure: Detect XInput 2.2
Carlos Garnacho [Mon, 28 Feb 2011 19:43:03 +0000 (20:43 +0100)]
configure: Detect XInput 2.2

12 years agoxi2: Add major/minor properties to XI2 device manager
Carlos Garnacho [Sat, 24 Dec 2011 13:33:24 +0000 (14:33 +0100)]
xi2: Add major/minor properties to XI2 device manager

This may be used to turn on/off the features that are added to
new XInput2 revisions.

12 years agobutton: don't be active when holding the mouse button outside the bounds
Cosimo Cecchi [Tue, 17 Jan 2012 22:14:23 +0000 (17:14 -0500)]
button: don't be active when holding the mouse button outside the bounds

GtkButton currently draws itself as active (pressed down) in case we're
pressing and holding the mouse pointer outside its bounds; this is
misleading though, since we won't activate the button unless the mouse
is released inside the button itself.
Fix this by only setting the ACTIVE state flag when the button is
actually pressed down.

https://bugzilla.gnome.org/show_bug.cgi?id=668141

12 years ago[l10n] Updated Estonian translation
Mattias Põldaru [Thu, 1 Mar 2012 17:20:22 +0000 (19:20 +0200)]
[l10n] Updated Estonian translation

12 years agobitmask: Don't allocate memory for small bitmasks
Neil Roberts [Thu, 9 Feb 2012 03:53:43 +0000 (04:53 +0100)]
bitmask: Don't allocate memory for small bitmasks

Code taken more or less verbatim from CoglBitmask.

12 years agobitmask: Split bitmask code into two
Benjamin Otte [Thu, 9 Feb 2012 00:44:59 +0000 (01:44 +0100)]
bitmask: Split bitmask code into two

This does nothing but turn all GtkBitmask functions into static inline
functions that call the gtk_allocated_bitmask_*() equivalent.

The implementation of the static functions has also been put into a
private header, to not scare people who want to see how things are
implemented.

12 years agobitmask: Allocate GtkBitmap data inline, not using GArray
Alexander Larsson [Thu, 9 Feb 2012 00:15:20 +0000 (01:15 +0100)]
bitmask: Allocate GtkBitmap data inline, not using GArray

This alone saves ~240k of GtkBitmap data after just starting up
nautilus.

12 years agobitmask: Make setters return a new value
Benjamin Otte [Wed, 8 Feb 2012 18:19:59 +0000 (19:19 +0100)]
bitmask: Make setters return a new value

(Actually, it's not a real 'new' value yet, but will be soon.

This is the first step to make bitmasks immutable.

12 years agotestgtk: Fix compiler warnings
Benjamin Otte [Thu, 1 Mar 2012 14:05:00 +0000 (15:05 +0100)]
testgtk: Fix compiler warnings

12 years agoFix up rendering of non-double-buffered overlays
Alexander Larsson [Thu, 1 Mar 2012 13:14:33 +0000 (14:14 +0100)]
Fix up rendering of non-double-buffered overlays

My previous fix for this broke the progress bar in epiphany. This fix
makes it work again, and keeps the gimp bug fixed.

Basically, whenever we do a non-double-buffered rendering we have to
flush the entire window as it might be drawn outside the double
buffering machinery.

12 years agocss: Fix variable
Benjamin Otte [Thu, 1 Mar 2012 12:46:11 +0000 (13:46 +0100)]
css: Fix variable

And you'd think I'd test my code...

12 years agoUpdated Telugu Translations
Krishnababu Krothapalli [Thu, 1 Mar 2012 09:22:58 +0000 (14:52 +0530)]
Updated Telugu Translations

12 years agocssprovider: Redo styles as an array
Benjamin Otte [Thu, 1 Mar 2012 05:40:15 +0000 (06:40 +0100)]
cssprovider: Redo styles as an array

Saves even more memory and avoids an extra copy during assigning.