Commit Graph

36128 Commits

Author SHA1 Message Date
Ryan Lortie
7411de3353 mir: allow windows to become focused
Send focus change events to toplevels in response to getting the event
from mir.

Now that the window is focused, cursor blink works, so wire up those
GtkSettings as well.
2014-05-28 16:21:31 +02:00
Ryan Lortie
df247b06ff mir: fill in some more GtkSettings
...and add an assert for those we don't handle.
2014-05-28 15:47:17 +02:00
Robert Ancell
7997195606 Correct spelling of Ambiance theme (still doesn't work though) 2014-05-28 15:34:29 +02:00
Ryan Lortie
5af62123b9 mir: we must leak the window ref for now
By the time we get the call to ensure_no_surface() the window is already
being disposed and the qdata is gone.  Our attempt to free the copy of
the ref owned by Mir by looking it up again from our qdata will fail.
2014-05-28 15:25:34 +02:00
Robert Ancell
4783fc58fc Set KeyEvent string field 2014-05-28 14:22:41 +02:00
Ryan Lortie
bfeb03a63c mir: do proper event dispatching
We had a race where destroying a window while an event is being
dispatched to it could result in a crash.  We can't just hold a ref on
the window because the object is externally visible and we could end up
running a binding's toggle ref handler in the mir thread.

Add a proper source type with a queue and try to do this properly by
dispatching the event back to the main thread before we check if the
window still exists (through use of a weak ref).

This commit also moves all of the event translation code out of
gdkmirwindowimpl.c (which is getting a bit big...).
2014-05-28 12:29:36 +02:00
Robert Ancell
b264978f10 Counter suspicious hover-exit events 2014-05-28 09:45:37 +02:00
Robert Ancell
31114972bc Generate crossing events 2014-05-28 09:31:43 +02:00
Robert Ancell
24da6c725b Let GDK decide if it wants events, ignore the event mask 2014-05-27 17:20:13 +02:00
Robert Ancell
a2e92e3f78 Remove debugging 2014-05-27 15:57:42 +02:00
Robert Ancell
ff39ff48b2 Correctly hide windows 2014-05-27 15:56:22 +02:00
Robert Ancell
6b36ee785a Handle Mir events on the main thread 2014-05-27 14:50:36 +02:00
Robert Ancell
b16e3f8f57 Finalize MirWindowImpl values 2014-05-27 14:33:34 +02:00
Robert Ancell
754f6f5eb5 Implement gdk_mir_window_impl_get_device_state 2014-05-27 12:06:52 +02:00
Robert Ancell
fd5a4c4de0 Get menus working (sort of) 2014-05-27 11:42:35 +02:00
Robert Ancell
1dcd8553bc Fix return windows in gdk_mir_pointer_query_state 2014-05-27 11:36:47 +02:00
Robert Ancell
e9f1bdb0aa Use event queue (sort of) correctly 2014-05-27 11:16:20 +02:00
Robert Ancell
19eea592f6 Disable debugging message 2014-05-27 10:23:28 +02:00
Robert Ancell
f619bb4e16 Disable debugging message 2014-05-27 10:21:38 +02:00
Robert Ancell
8c5b874d68 Flesh out keymap 2014-05-27 10:18:47 +02:00
Robert Ancell
66ba07d457 Emit events 2014-05-27 10:15:07 +02:00
Robert Ancell
84a1315e22 Don't set send_event, make public function private 2014-05-27 09:24:26 +02:00
Robert Ancell
8411a3e253 Link associated devices 2014-05-27 09:23:57 +02:00
Robert Ancell
86ff72337c Make separate keyboard and pointer device classes 2014-05-27 09:10:02 +02:00
Robert Ancell
7aca071133 Set initial window event mask, don't set event variables we don't need 2014-05-26 15:15:45 +02:00
Robert Ancell
3f6f23d231 Set more event fields 2014-05-26 11:59:53 +02:00
Ryan Lortie
45bd02fec3 mir: create devices from _constructed
The "display" property is not yet set at time of _init.
2014-05-26 11:47:44 +02:00
Robert Ancell
260b30a4d4 Stub Mir module 2014-05-26 09:03:38 +02:00
Matthias Clasen
1aaf9c79d9 Bump version 2014-05-12 16:00:08 -04:00
Matthias Clasen
781e3effb0 3.10.9 3.10.9 2014-05-12 14:23:02 -04:00
Matthias Clasen
2a99d0305a a11y: Avoid a warning
The listbox row accessible code was giving warnings when
parent is NULL, at destruction time.
2014-05-12 14:18:59 -04:00
Benjamin Otte
77a8ce71d7 applicationwindow: Properly unmap the menubar widget 2014-05-12 14:18:49 -04:00
Marcus Karlsson
91e0074185 GtkColorChooserWidget: Redraw swatches when selection changes
When selecting a swatch in a GtkColorChooserWidget the previously
selected swatch and the currently selected swatch are not redrawn. This
can leave the old swatch still marked with a checkbox even though a new
swatch has been selected.

Redraw the swatches after changing the selection.

https://bugzilla.gnome.org/show_bug.cgi?id=727487
2014-05-12 14:17:56 -04:00
Matthias Clasen
0d60438b56 gtk-demo: Fix images demo
The incremental loading was broken by GtkIconHelper - queuing a
redraw is no longer sufficient to cause GtkImage to redraw with
the new pixbuf contents.
Pointed out by Jasper St. Pierre.
2014-05-12 14:17:38 -04:00
Juan Pablo Ugarte
75cde50634 GtkRecentChooserMenu: Set current uri before activating an item.
When activating an item using mnemonics GtkRecentChooserMenu does not select a
item before calling the item-activated signal thus
gtk_recent_chooser_get_current_uri() always return the last selected item
instead of the activated one.

Fixes Bug 495105 "Open recent file keyboard shortcuts do not work correctly"
2014-05-12 14:16:49 -04:00
Juan Pablo Ugarte
5ecac16441 Fixed crash in GtkLockButton if a button with permission set to NULL is clicked.
https://bugzilla.gnome.org/show_bug.cgi?id=728992
2014-05-12 14:16:39 -04:00
Antoine Jacoutot
2c847136f5 openbsd: properly set len for gtkmountoperation-x11
sysctl(3) is the correct way to get the lenght for len in this case.
Also drop unused headers and change style to match the rest of the file.
2014-05-12 14:16:25 -04:00
Marc-André Lureau
c7978c1832 gdk/win32: VK_SNAPSHOT maps to GDK_Print
Also, I am not sure the above VK_PRINT -> GDK_Print mapping is
correct, but it doesn't hurt yet.

https://bugzilla.gnome.org/show_bug.cgi?id=686170
2014-05-12 14:16:10 -04:00
Marc-André Lureau
f3104d380e win32: add more clipboard data checks to avoid crash
It may happen that the received clipboard data is empty, but
if it's of type image/bmp, gtk+ will crash:

gdk_property_change: 00030AD4 GDK_SELECTION image/bmp REPLACE 8*0 bits:
... delayed rendering
gdk_selection_send_notify_for_display: 00030AD4 CLIPBOARD image/bmp
GDK_SELECTION (no-op)
_gdk_win32_selection_convert_to_dib: 1252003C image/bmp

Program received signal SIGSEGV, Segmentation fault.
0x749a9f40 in msvcrt!memmove () from C:\Windows\syswow64\msvcrt.dll

Thread 1 (Thread 2248.0x1b34):
target=0xc07b) at gdkselection-win32.c:1292
at gdkevents-win32.c:3498
wparam=8, lparam=0) at gdkevents-win32.c:232
message=773, wparam=8, lparam=0)
    at gdkevents-win32.c:263
C:\Windows\syswow64\user32.dll
C:\Users\rugoosse\AppData\Local\virt-viewer\bin\libpangocairo-1.0-0.dll
wparam=0, lparam=-1687549457)
    at gdkevents-win32.c:248
C:\Users\rugoosse\AppData\Local\virt-viewer\bin\libpangocairo-1.0-0.dll

https://bugzilla.gnome.org/show_bug.cgi?id=728745
2014-05-12 14:15:55 -04:00
Jasper St. Pierre
f42076e377 gtk-demo: Make sure to clear the timeout when we stop it 2014-05-12 14:15:24 -04:00
David Mansfield
dc98a26aa2 GdkCursor: Don't leak a cairo surface
The function gdk_cursor_new_from_pixbuf creates a cairo surface
to pass to its backend implementation, but doesn't destroy it
afterwards.
https://bugzilla.gnome.org/show_bug.cgi?id=729670
2014-05-07 19:40:14 -04:00
Volker Sobek
93c1b2b959 docs: Fix parameter names for two functions
Don't use two different parameter names.
2014-04-21 23:15:18 +02:00
Руслан Ижбулатов
2315030f1e W32: correctly guess max window size from the size of the workarea of the screen it's on
Get monitor on which the most of the window is located (nearest monitor if
window is not on screen), get its work area (area not occupied by taskbar or
any other bars) and use that for maxsize.

Previous default of 30000 meant that windows maximized onto full screen,
even covering the area where taskbar is.

https://bugzilla.gnome.org/show_bug.cgi?id=726592
2014-04-16 22:46:24 +00:00
Ryan Lortie
2e06ff3d4d GtkMenuTracker: tweak separator logic
Ignacio Casal Quinteiro reported a problem whereby an empty section at
the start of a menu has a separator placed after it.  This was caused by
the implementation of the logic that separators should be inserted at
the top of all non-empty sections that are not the first section.  This
logic is obviously incorrect in the case that the first section is empty
(in which case we would not expect to see a separator at the top of the
second section).

Change the logic so that we only insert separators when we see a
non-zero number of actual items in the menu before us.

https://bugzilla.gnome.org/show_bug.cgi?id=721119
2014-04-14 09:20:34 -04:00
Carlos Garnacho
feb0c89e0b x11: Implement "drag to top to maximize" gesture on emulated window dragging
And the counterpart to unmaximize when dragging a maximized window, if
touch devices aren't going to use EWMH moveresize, having this one at least
makes things feel a bit less awkward.

https://bugzilla.gnome.org/show_bug.cgi?id=709914
2014-04-10 16:29:03 -07:00
Carlos Garnacho
5e43c61fa2 x11: Fallback to emulated window dragging for touch devices
Sadly, EWMH moveresize mechanism can't work with touch devices for two
reasons:

1) As a mutter implementation detail, the device is queried in order
to check whether the dragging button is still pressed. Touch devices
won't report the button 1 being pressed through pointer emulation.
2) Even bypassing that check, on X11 touch events are selected prior
to sequences being started, either through XISelectEvents or
XIGrabTouchBegin, no late registering through active grabs is allowed,
as WMs do on reaction to EWMH moveresize messages.

So for the time being, make touch devices fallback on emulated window
dragging, which at least allows for moving windows.

https://bugzilla.gnome.org/show_bug.cgi?id=709914
2014-04-10 16:28:55 -07:00
Matthias Clasen
dc4b32b091 X11: Support keyboard-initiated move and resize operations
The EWMH defines _NET_WM_MOVERESIZE_SIZE_KEYBOARD and
_NET_WM_MOVERESIZE_MOVE_KEYBOARD for operations that are not
initiated by a button-press event. Allow using these by passing
a button of 0 to gdk_window_begin_move/resize_drag.
2014-04-10 16:28:45 -07:00
Piotr Drąg
9a2accc7a7 Updated POTFILES.skip 2014-04-06 16:04:16 +02:00
Matthias Clasen
18ee393a2a Bump version 2014-04-05 23:56:27 -04:00
Matthias Clasen
2981ac9cf9 3.10.8 3.10.8 2014-04-05 22:25:33 -04:00