Commit Graph

44055 Commits

Author SHA1 Message Date
Jonas Ådahl
a4448b7578 wayland: Don't use GTK symbols from GDK
GTK_WINDOW_POPUP sets the GdkWindow type to GDK_WINDOW_TEMP, so use
that in GDK, not the GTK symbol which doesn't exist there.
2015-11-09 08:40:47 -05:00
Jonas Ådahl
8c8ed3e778 GtkTreeView: Rework the search window hack so it also works on Wayland
The search window of a tree view was implemented by showing without
making it visible by by positioning it outside the screen edge. This is
not possible on Wayland, so implement another method for being able to
enter text into a non-visible entry.

The new method is implemented by, before showing the window, pass the
key event directly to the IM context backing the entry. If the key
event triggered the context to commit new text or change the preedit
content, the search window is shown, and from that point the key events
are forwarded directly to the entry widget.

https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-11-09 08:40:39 -05:00
Jonas Ådahl
1b58cd10a9 wayland: Map UTILITY hinted popup windows as subsurfaces
Currently used by GtkTreeView to map windows without changing focus. We
can't map this as a popup, because popup implies focus change.

https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-11-09 08:40:34 -05:00
Jonas Ådahl
3a53352afe GtkTreeView: Make a search window destroy helper
https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-11-09 08:40:25 -05:00
Jonas Ådahl
ea449a032a wayland: Don't try to use subsurfaces as popup parents
If a GtkMenu (or something else that is mapped as a xdg_popup) tries to
use a subsurface window as a parent, it will be terminated by the
compositor due to protocol violation. So to avoid this, if a parent
window is not a xdg_popup or xdg_surface, i.e. a wl_subsurface, then
traverse up the transient parents until we find the right popup parent.

https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-11-09 08:40:20 -05:00
Jonas Ådahl
a78f4d5444 wayland: Make window type conditions switches
In order to make it easier to add/remove in future commits.

https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-11-09 08:40:13 -05:00
Jonas Ådahl
b31132971d GtkTreeView: Use more consistent search window naming
Instead of alternating between search dialog and search window, use
search window everywhere.

https://bugzilla.gnome.org/show_bug.cgi?id=756780
2015-11-09 08:40:06 -05:00
Matthias Clasen
bfedc3bafe Translate GDK_KEY_KP_Decimal according to locale
It makes sense that you should be able to type numbers that are
correctly formatted and parsable according to the current locale,
using just the keypad. This patch makes it so by translating
GDK_KEY_KP_Decimal to the decimal separator for the current locale,
instead of hardcoding a '.'.

https://bugzilla.gnome.org/show_bug.cgi?id=756751
2015-11-09 08:38:45 -05:00
Matthias Clasen
d49c1cdcf4 win32: Fix introspection syntax 2015-11-09 08:38:17 -05:00
Matthias Clasen
90dd285c22 builder: Avoid some unnecessary overhead
Only get the class once per object, not once per property.
And don't canonicalize the property name, g_object_class_find_property
does that already.
2015-11-09 08:37:20 -05:00
Paolo Borelli
276e9be383 widget: fix typo in warning message 2015-11-09 08:37:04 -05:00
Jonas Ådahl
e135358ed0 wayland: Map windows with tooltip hint as subsurfaces
Tooltips tend to be placed on top of a parent surface with a given
relative coordinate, and without any input focus. So lets map them as
subsurfaces.

https://bugzilla.gnome.org/show_bug.cgi?id=756496
2015-11-09 08:36:55 -05:00
Jonas Ådahl
1d464fca3c wayland: Clean up code determining how to map a window
Restructure the mapping procedure so that its known up front what the
expected way mapping is to be done (subsurface, popup or stand alone),
and warn if it fails to actually map in such a way (for example a popup
without a parent or device grab, a tooltip without a parent).

https://bugzilla.gnome.org/show_bug.cgi?id=756496
2015-11-09 08:36:49 -05:00
Timm Bäder
633b08cc8a GtkPaned: Fix gtk_paned_set_child_visible calls
Use CHILD1/CHILD2 instead of 0 and 1, always use the same order and
don't check for child NULL-ness, because it will be done in
gtk_paned_set_child_visible anyways.
2015-11-09 08:36:10 -05:00
Sébastien Wilmet
1536710dba inspector: remove gtk_text_buffer_get_iter_at_line_index() workaround
The function is now safe to use.

https://bugzilla.gnome.org/show_bug.cgi?id=735341
2015-11-09 08:35:49 -05:00
Sébastien Wilmet
cf51c4f6db textbuffer: nicer get_iter functions
Avoid crashes when passing an invalid location to a
gtk_text_buffer_get_iter_at_*() function.

A boolean is returned to know if @iter has been set to the exact
location.

Unit tests are added.

https://bugzilla.gnome.org/show_bug.cgi?id=735341
2015-11-09 08:35:37 -05:00
Matthias Clasen
2a95ab1828 Improve text a11y test
Test appending text as well as replacing the entire text.
Insert non-ASCII text to verify offsets are correct.
2015-11-09 08:35:06 -05:00
Matthias Clasen
13f680d11a file chooser: Avoid search interruption
When the search entry is shown, the 'special' nature of
., ~ and / should not trigger the location entry, because
that interrupts the search and is likely not what the
user intended.

https://bugzilla.gnome.org/show_bug.cgi?id=756505
2015-11-09 08:34:54 -05:00
Matthias Clasen
b94ef83239 Assistant: Fix page rmoval
We have to remove the page itself from the intermediate box
first, before removing the box from the notebook. Otherwise,
reffing the page to keep it alive is ineffective: the box
gets destroyed, and that destruction recurses over the page.

This fixes the problem in
https://bugzilla.gnome.org/show_bug.cgi?id=756385
2015-11-06 08:28:57 -05:00
Cosimo Cecchi
4b7611bd93 menushell: don't call gtk_render_background()
GtkMenu and GtkMenuBar, the two implementations of GtkMenuShell in GTK,
already draw it.
Furthermore, rendering a background here will overdraw any rendering
that the subclass will do, such as arrows for scrolling menus.
2015-11-02 16:08:48 -08:00
Matthias Clasen
879630b832 entry completion: Only grab the device if we have one
When the entry completion is popped up from a timeout, we may
not have a device. In that case, don't call gdk_device_grab,
do avoid criticals.
2015-11-02 17:58:01 -05:00
John Ralls
4cdec89bc4 Bug 753992 - im-quartz discard_preedit segmentation fault
Replace checking if the NSView is really a GdkWindow, which will crash
in the likely event it's not a GObject, with ensuring that the parent
GdkWindow is really a GdkWindowQuartz.

(cherry picked from commit 571704824f)
2015-11-01 17:24:10 -08:00
Paolo Borelli
05a46f629d win32: handle WM_DISPLAYCHANGE globally
Instead of handling WM_DISPLAYCHANGE on every GdkWindow, only handle
it on an ad-hoc hidden window we create when opening the display.
This has two reasons:
1) we want emit the display::size-changed signal even if there are no
   gtk windows currently open
2) we want to emit the signal just once and not once for every window

https://bugzilla.gnome.org/show_bug.cgi?id=757324
2015-10-31 19:38:03 +01:00
Georges Basile Stavracas Neto
9a0d236609 placesview: vertically align path labels
The current situation is somewhat sad, with the path
label totally misaligned throughout the rows.

This is fixed by using a size group for the path labels,
so they all have the same allocated size (with the max
of 15 chars). Also, instead of hiding the eject button,
set it child-invisible, so it is hidden and yet it's size
is allocated by GtkBox.

https://bugzilla.gnome.org/show_bug.cgi?id=757303
2015-10-30 11:39:22 -02:00
Dominique Leuenberger
dae857a94d placessidebar: do not crash if uris is NULL
On Drag'n'Drop actions across system boundaries (VM host to guest), the
happen to be null.

https://bugzilla.gnome.org/show_bug.cgi?id=757298
2015-10-29 17:34:45 +01:00
Lars Uebernickel
680295587c gdkpixbuf-drawable: reinstate accidentally removed line 2015-10-27 13:43:07 +01:00
Lars Uebernickel
a950b5357a gdk_pixbuf_get_from_window: honor device scale
gdk_pixbuf_get_from_window() paints the given window onto a new cairo
surface. Create that new surface with the same device scale as the
window so that the result is not scaled down on hidpi screens.

https://bugzilla.gnome.org/show_bug.cgi?id=757147
2015-10-27 09:44:01 +01:00
Marek Černocký
d8597e3177 Added branch name 2015-10-27 07:37:14 +01:00
Marek Černocký
06c7079758 Updated Czech translation 2015-10-27 07:21:23 +01:00
Marek Černocký
0a3f686cef Updated Czech translation 2015-10-26 07:55:33 +01:00
Chun-wei Fan
fb8c947091 MSVC builds: Ensure /LTCG when necessary
gtk3-demo, gtk3-demo-application and gtk3-icon-factory are built using
/opt:noref as they use GResources without --manual-register, meaning that
flag is used to avoid the linker from optimizing out the GResource items
for release builds.

Visual Studio 2015 changed its default link-time code generation setting
to /LTCG:incremental, which would cause problems as it will cause the
linker to optimize out the GResource items from the compiled code, so fix
this by enforcing /LTCG for these three items.
2015-10-23 10:21:25 +08:00
Owen W. Taylor
390c1119ed testgtk/Alpha Window: fix the drawn area when we are drawing decorations
A GtkWindow's allocation includes the titlebar, borders, and shadows; we
only want to draw our custom alpha content over the child allocation of
the GtkWindow.

https://bugzilla.gnome.org/show_bug.cgi?id=756886
2015-10-22 11:07:06 -04:00
Owen W. Taylor
e29b911396 GtkWindow: draw the frame and shadow even for app-paintable windows
If a window is decorated, we need to draw the frame and shadow, even if
it is app-paintable - it's just nonsense to have a frame that we handle
events on, but expect the app to paint it. (We paint the titlebar in
any case.) If a client wants to handle all painting, it should use an
undecorated window.

https://bugzilla.gnome.org/show_bug.cgi?id=756886
2015-10-22 11:06:27 -04:00
Owen W. Taylor
132b776e1f Guard against selection requestor disappearing
We made a number of unchecked accesses to the selection requestor,
which could cause X errors if the selection requestor vanished
(or we were sent invalid events). Add error traps around all of them.

See https://bugzilla.redhat.com/show_bug.cgi?id=1210814 for an
example of a crash that could be caused by this. (There are about
1000 instances of such a crash in http://retrace.fedoraproject.org
though no linked bug reports specifically talk about cut-and-paste
or DND.)

https://bugzilla.gnome.org/show_bug.cgi?id=756881
2015-10-22 11:06:19 -04:00
Sveinn í Felli
7f42eee250 Updated Icelandic translation 2015-10-20 13:58:38 +00:00
Inaki Larranaga Murgoitio
57e592629b Updated Basque language 2015-10-20 10:47:00 +02:00
Inaki Larranaga Murgoitio
d23fccd4a2 Updated Basque language 2015-10-20 10:45:39 +02:00
Inaki Larranaga Murgoitio
6b6fbc73de Updated Basque language 2015-10-20 10:39:47 +02:00
Matthias Clasen
3c54eb4c6e Clean up handling of _gdk_win32_grab_cursor
This is a variable holding a ref to an object, so it is
a great case to use g_set_object and g_clear_object.

 # Please enter the commit message for your changes. Lines starting
2015-10-19 15:57:41 +02:00
Руслан Ижбулатов
1f2069c55c W32: Add missing reference taking in gdk_device_virtual_grab()
https://bugzilla.gnome.org/show_bug.cgi?id=756160
2015-10-19 15:57:41 +02:00
Kjartan Maraas
1435d8c148 Updated Norwegian bokmål translation. 2015-10-17 12:33:07 +02:00
Kjartan Maraas
bb40d64cb4 Updated Norwegian bokmål translation. 2015-10-17 12:32:18 +02:00
Dušan Kazik
929c5ae2f3 Updated Slovak translation 2015-10-16 06:21:05 +00:00
Dušan Kazik
db4837c607 Updated Slovak translation 2015-10-16 06:18:01 +00:00
Matthias Clasen
4c675d08a8 scrolled window: Protect against nameless devices
It seems that gdk_device_get_name() can return NULL.
We should not crash if that happens.

https://bugzilla.gnome.org/show_bug.cgi?id=756625
2015-10-15 16:11:00 -04:00
Carlos Garnacho
c1ae56dfa8 texthandle: Ensure handles are invalidated on mode changes
Otherwise the "cursor" handle stays with "cursor" appearance instead of
"selection end" when a text selection is started.
2015-10-15 16:10:45 -04:00
Carlos Garnacho
e67abe8758 texthandle: small refactor
These long enums are used too often, shorten things a bit with temp vars.
2015-10-15 16:10:40 -04:00
Carlos Garnacho
ddeab4dfda texthandle: Fix Y positioning of text handles
It is assumed that border.top is the same than pointing_to.height (which
equals the strong cursor position), which is not since some time ago.

The border calculation has been move on top too, it is now used in the
Y position one, and doesn't depend on anything we calculate later.
2015-10-15 16:10:32 -04:00
Carlos Garnacho
c5631dfc9c texthandle: Fix handle dragging on wayland
Text handles are subsurfaces on wayland, so sort of their own toplevel.
This made gtk_widget_translate_coordinates() to bail out there, resulting
in text handles being mispositioned and jumpy. To fix this, translate to
toplevel GtkWindow coordinates manually, and translate coordinates from
there.

Along the way, the coordinates reported in ::handle-dragged have been
fixed so there is no small jumps in either axis (most noticeable in the
X axis when you started dragging, and in the Y axis when moving between
lines of different heights.
2015-10-15 16:10:25 -04:00
Jonas Ådahl
396215615b GtkWindow: Enlarge the type hint private field
Make it what it is - the enum - so that that it is sure that the hint
will fit in the field. Without this, any hint that doesn't fit in 3
bits will be truncated to the 3 least significant bits, causing
unexpected behaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=756496
2015-10-15 16:10:01 -04:00