Compare commits

...

166 Commits

Author SHA1 Message Date
Cédric Valmary 13357c0133 Updated Occitan translation 2015-05-29 20:44:45 +00:00
Cédric Valmary 03dfefe058 Updated Occitan translation 2015-05-15 16:16:51 +00:00
Matthias Clasen ea0ccff381 Bump version 2014-01-27 15:19:19 -05:00
Matthias Clasen 20db44f587 3.6.5 2014-01-27 12:04:11 -05:00
Ignacio Casal Quinteiro b7cd7ca747 win32: handle again gtk-font-name
This code is ugly but it seems to do the work
2014-01-27 09:45:01 +01:00
Ignacio Casal Quinteiro dcd15354e3 win32: scale slider with marks was off by 2 pixels 2014-01-27 09:39:25 +01:00
Ignacio Casal Quinteiro 712c8d6253 win32: set color for scale marks 2014-01-24 18:26:26 +01:00
Ignacio Casal Quinteiro fb1c1bdd2f win32: add margin to scale trough 2014-01-24 18:02:24 +01:00
Ignacio Casal Quinteiro 36c94d665d win32: add more width to the slider to not cut it when using marks 2014-01-24 17:32:54 +01:00
Tarnyko 6089c2ffac win32: Bring back spinner animation
Define the spinner animation in css.
https://bugzilla.gnome.org/show_bug.cgi?id=696202
2014-01-24 15:10:07 +01:00
Tarnyko a243b4d54a win32: Improve GtkAssistant theming
The highlighted color chosen for GtkAssistant header font
(deep blue) makes it hardly readable is most cases. Switch
to light gray.
https://bugzilla.gnome.org/show_bug.cgi?id=696171
2014-01-24 15:08:04 +01:00
Federico Mena Quintero 62f971be19 GtkFileChooserEntry: don't inline-complete if the entry doesn't have the focus
When the file chooser changes directories, it tells the GtkFileChooserEntry to
change its base folder (i.e. the folder from which relative pathnames are resolved).
GtkFileChooserEntry then starts loading a GtkFileSystemModel asynchronously.
In the finished_loading_cb(), however, it would always ask the GtkEntryCompletion
to insert the completion prefix, since that finished_loading_cb() is what is also used
while the user is typing *in the entry*.

But when the entry doesn't have the focus (e.g. the user changed directories by double-clicking
on the file list in the file chooser), there's no reason to insert completions at all.

https://bugzilla.gnome.org/show_bug.cgi?id=672271
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2013-06-21 19:08:25 -05:00
Matthias Clasen 3b0fd46b1a IconTheme: Move changed emission to an idle
By delaying the emission to an idle we avoid a lot of tricky
reentrancy issues. For instance, a normal gtk_icon_theme_choose_icon()
call could in very rare cases (when a user updated an icon theme) emit
a signal which could affect the icon currently being looked up.  This
kind of reentrancy is very hard to test against, especially when it is
so rare, so we're better of avoiding it.

There is no real value to get the change signal directly anyway. All
it can do is affect which icon is rendered the next frame, and we will
handle the queued emission before rendering. Not to mention that icon
theme change detection is polled anyway, so it is already delayed.

https://bugzilla.gnome.org/show_bug.cgi?id=694755
2013-06-19 16:48:43 -04:00
Marek Kasik bb50b6c717 printing: Show correct status of a job
"job-state" is IPP_TAG_ENUM not IPP_TAG_INTEGER.
2013-06-06 11:13:14 +02:00
Žygimantas Beručka 30967177a5 Updated Lithuanian translation 2013-04-28 13:28:09 +03:00
Nik Kalach 69f444066b [l10n] Update Interlingua translation 2013-04-24 16:02:21 +02:00
Daniel Mustieles 292fe97fd5 Updated Spanish translation 2013-04-07 19:08:42 +02:00
Gil Forcada f8c8c33e07 [l10n] Update Catalan translation 2013-04-01 16:10:39 +02:00
Balázs Úr f830a5cbdd Updated Hungarian translation 2013-03-20 22:17:23 +01:00
Andika Triwidada d4373680f7 Updated Indonesian translation 2013-03-11 15:41:09 +07:00
Enrico Nicoletto 2c0b1eacfd Updated Brazilian Portuguese translation 2013-03-09 20:12:05 -03:00
Matthias Clasen 65541f6409 Fix the build
This was broken in commit 5bbbc47a4c
2013-03-08 13:26:28 +01:00
Aleksander Morgado 801dfd0689 spinbutton: don't override initial text in non-numeric-only spin buttons
https://bugzilla.gnome.org/show_bug.cgi?id=695312
2013-03-08 11:24:32 +01:00
Rafael Ferreira a36d29191c Updated Brazilian Portuguese translation 2013-03-07 10:10:44 -03:00
Alan McGovern faee4bc635 quartz: Null check title before setting it
This avoids a crash in objective-c.

https://bugzilla.gnome.org/show_bug.cgi?id=695278
2013-03-06 12:38:34 +01:00
Geoff Reedy da7c2d6a02 GdkScreen: get a long X property correctly
https://bugzilla.gnome.org/show_bug.cgi?id=691426
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2013-02-26 17:58:56 -06:00
Aleksander Morgado 2e55530725 win32: fix possible memleak if GlobalAlloc() fails
Also remove the unused 'buf' variable.

https://bugzilla.gnome.org/show_bug.cgi?id=694742
2013-02-26 15:15:21 +01:00
Marek Černocký 9f81a4149b Updated Czech translation 2013-02-17 20:04:04 +01:00
Alexandre Franke 6706ac1cbb Update French translation 2013-02-08 16:47:02 +01:00
Fran Diéguez 2552d840f3 Updated Galician translations 2013-02-07 01:52:26 +01:00
Christian Kirbach 022ae7c096 Updated German translation 2013-02-01 21:22:03 +01:00
Rob Bradford 4846d3cf35 wayland: Fix configure flag around cairo egl support
The intention was for this to default to off. However just using this option
(whether to enable or disable it) would turn it on.

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

Thanks to Quentin Glidic for spotting this issue.
2013-01-28 12:29:34 +00:00
Matej Urbančič 8bf70b2cf5 Updated Slovenian translation 2013-01-26 20:09:23 +01:00
Aurimas Černius 337b77dbcc Updated Lithuanian translation 2013-01-23 21:38:43 +02:00
Enrico Nicoletto f352db564c Updated Brazilian Portuguese translation 2013-01-23 00:54:31 -02:00
Enrico Nicoletto 59527d86ae Updated Brazilian Portuguese translation 2013-01-23 00:53:35 -02:00
Мирослав Николић 62814c1eb2 Updated Serbian translation 2013-01-22 19:18:40 +01:00
Piotr Drąg b32d6dc01f Updated Polish translation 2013-01-22 16:24:52 +01:00
Hib Eris d5794ab4ef Fix compiling for win32
https://bugzilla.gnome.org/show_bug.cgi?id=687066
2013-01-20 22:21:59 -05:00
Geoff Reedy 973bf2e4a2 x11: add missing checks that a hint is supported
Before acting on any hint that is set by the window manager we must
first check that the hint is supported by the current window manager.
Checking that a property has a value is insufficient as it may have
been set by a previous window manager which did support the hint.

https://bugzilla.gnome.org/show_bug.cgi?id=691515
2013-01-17 21:12:45 -05:00
Michael Natterer 81667921be quartz: merge the clipboard storing code from gtk-2-24
(cherry picked from commit c1e0317824)
2013-01-17 14:57:12 +01:00
Kristian Rietveld 2b26ca7371 quartz: retain content view when switching over toplevel.
(cherry picked from commit 1d410ec960)
2013-01-17 14:56:35 +01:00
Kristian Rietveld a38de21ac4 quartz: Make sure the old toplevel is closed on recreation
(cherry picked from commit ce7d29aa89)
2013-01-17 14:56:13 +01:00
Kristian Rietveld d302c2e7a4 quartz: make sure all old properties are set on the new toplevel
Apply patch by Paul Davies; part of bug 669808.
(cherry picked from commit b4b42ba54d)
2013-01-17 14:55:57 +01:00
Kristian Rietveld cde70d0ea8 quartz: ensure window being (un)fullscreened is visible
Patch by Paul Davis; part of bug 669808.
(cherry picked from commit 5162751f6c)
2013-01-17 14:55:29 +01:00
Carlos Garnacho 63998cc93f gdk: strengthen touch crossing event synthesizing on programmatical crossings
There are cases where crossing events aren't generated by input devices themselves
but rather through programmatical means (windows being moved/hidden/destroyed while
the pointer is on top).

Those events come from X as sourceid=deviceid, and GDK does its deal at lessening
this by setting a meaningful source device on such events, although this caused
some confusion on the mechanism to block/synthesize touch crossing events that
could possibly cause bogus enter events on the new window below the pointer.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691572
2013-01-15 17:53:20 +01:00
Matthias Clasen ef05d241e2 Revert "Update expected output of a11y tests"
This reverts commit aef8aa98a5.
2013-01-12 17:46:52 -05:00
Matthias Clasen 25876ce74a 3.6.4 2013-01-07 06:38:24 -05:00
Matthias Clasen aef8aa98a5 Update expected output of a11y tests 2013-01-07 06:38:24 -05:00
Benjamin Otte 7f0b30d7d4 stylecontext: Make font hack not crash
It's a lot uglier now, but it shouldn't crash anymore.

We must update the font description for animations, but we can't free it
on query, because some paths call gtk_style_context_get_font() twice in
a row without stopping the use of the first call. So us just creating a
new font description all the time and unreffing the old one is not a
good idea. So we just mere the new one into the old one.

https://bugzilla.gnome.org/show_bug.cgi?id=691186
2013-01-07 01:00:49 +01:00
Matthias Clasen 74f11d6b9c Bump version 2013-01-03 21:03:50 -05:00
Benjamin Otte ec2d51beb2 reftests: Fix linear-gradient reftest (again)
Make it so that the repeating vs normal test only uses sharp color
cutoffs instead of real gradients. That removes rounding errors and
makes the test pass.
2013-01-03 20:03:57 -05:00
Benjamin Otte 537034c2ad reftests: Turns out, green changed color
What used to be "green" is now "lime"
2013-01-03 20:03:49 -05:00
Matthias Clasen 463c1e7049 Fix parser tests for color changes 2013-01-04 01:30:39 +01:00
Stéphane Démurget 8766709e76 Updates for 3.6.3 2013-01-03 19:08:21 -05:00
Pierre-Yves Luyten 9a0b914610 Ensure GtkColorButton has a dialog when adding a palette
https://bugzilla.gnome.org/show_bug.cgi?id=132333
2013-01-03 18:01:29 -05:00
Kalev Lember 25cabe3945 gtkroundedbox: Fix a compiler warning
Use the correct enum type.
2013-01-03 18:01:23 -05:00
Kalev Lember 2e9e739111 gtkliststore: Add explicit braces to avoid dangling else
Otherwise the following else becomes attached to the wrong if.
2013-01-03 18:00:33 -05:00
Matthias Clasen 72b8e937d1 Add a missing va_end call
va_copy must be matched with va_end.
2013-01-03 18:00:09 -05:00
Matthias Clasen c705d2df60 Avoid unreachable code
Reestablish an else that went missing in commit 5ff328d2. Without
it, the return is reached unconditionally, and the code behind
it is dead.
2013-01-03 18:00:04 -05:00
Matthias Clasen ac35a00a5c Don't return prematurely
This code was clearly meant to return _after_ the loop.
Don't put the return inside the loop body, then.
2013-01-03 17:59:58 -05:00
Matthias Clasen cea2b80f40 GtkAboutDialog: Initialize a variable
Coverity complains about it being uninitialized, otherwise.
2013-01-03 17:59:52 -05:00
Matthias Clasen aaea19ee91 GtkNotebook: Clarify a switch statement
We were intentionally falling through here, this commit
just adds comments to make that explicit.
2013-01-03 17:59:46 -05:00
Matthias Clasen 347f4aa54b GtkCellAccessible: Add missing break statements
This switch was entirely breakless. Amazing accessibility code,
found by Coverity.
2013-01-03 17:59:40 -05:00
Matthias Clasen f294563685 GtkExpander: Clarify a nested switch
This code confused Coverity into thinking we were falling through,
when we were not. Add a few explicit breaks to clear that up.
2013-01-03 17:59:26 -05:00
Matthias Clasen b85098c819 Add a forgotten break in render_border
The GTK_BORDER_STYLE_DOUBLE case was clearly not meant to
fall through to the subsequent cases, yet it did.
Found by Coverity.
2013-01-03 17:59:19 -05:00
Matthias Clasen 77e2df6145 GtkIconViewAccessible: Fix a copy-paste error
Don't access vadjustment after checking hadjustment for
not being NULL. Found by Coverity.
2013-01-03 17:59:11 -05:00
Matthias Clasen ed7d5cdba3 GtkActionHelper: Fix a copy-paste error
The code clearly meant to reset action->active here.

This was found by Coverity.
2013-01-03 17:59:02 -05:00
Matthias Clasen c76ca484d1 gtk_css_value_bg_size_equal: actually compare contain values
Due to a copy-paste error, the code failed to compare the
contain members of value1 and value2.

This was found by Coverity.
2013-01-03 17:58:54 -05:00
Matthias Clasen 5d55191880 Don't check the same crossing mode twice
This was broken since commit b2aaa94 in 2008. Its commit message
clearly states that the intention was to check for GTK_GRAB,
GTK_UNGRAB and STATE_CHANGED. Lets do that, then.

This was found by Coverity.
2013-01-03 17:58:45 -05:00
Matthias Clasen 35079629a5 GtkLabel: Fix a pointless expression
Clearly, what was meant here was that we create a new attribute
list if either of the input attribute lists are non-NULL.
This was found by Coverity.
2013-01-03 17:53:24 -05:00
Christophe Fergeau a568991866 Sanitize memory handling in cups_request_printer_list_cb
gtk+ was trying to display already freed strings, leaking memory,
...I noticed this because I was getting weird blinking characters
as the status of my cups printers, and valgrind confirmed something
was wrong.

https://bugzilla.gnome.org/show_bug.cgi?id=683072
2013-01-03 17:52:47 -05:00
Jasper St. Pierre dc35b2770b gtkversion.h.in: Put the documentation inside the header guards
This fixes a warning with gobject-introspecion scanning
2013-01-03 17:49:24 -05:00
Gheyret Kenji 46667db696 updated uyghur translation.
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
2012-12-23 12:13:46 +09:00
Gheyret Kenji ed2ce93465 updated Uyghur translation
Signed-off-by: Gheyret Kenji <gheyret@gmail.com>
2012-12-23 12:06:42 +09:00
Benjamin Otte 984e2e41dd roundedbox: Fix copy-paste error
y coordinates don't care about the right value, they want bottom.
2012-12-21 16:29:31 +01:00
Shantha kumar 0b141481d2 Tamil translation updated 2012-12-19 14:59:06 +05:30
Shantha kumar 219a8448f4 Tamil translation updated 2012-12-19 14:58:16 +05:30
Michael Natterer a398c1917a quartz: make setting_same_owner member of GtkClipboardOwner @public
to fix the build, thanks to parafin for the patch.
(cherry picked from commit e3e055f855)
2012-12-17 22:22:58 +01:00
Cosimo Cecchi 8a34428e00 csskeyframes: unref GtkCssValues when free-ing
We assume a reference to all the GtkCssValues we store, so we need to
release it when free-ing.
2012-12-17 17:59:52 +01:00
Stéphane Démurget 583a7bf189 gtkmenushell: Fix an endless loop on focus cycle
This is a simple fallout from sealing gtkmenushell, which only appears
when F10 or Shift-F10 is used in a submenu.

https://bugzilla.gnome.org/show_bug.cgi?id=690266
2012-12-17 16:07:44 +01:00
Christian Kirbach feacd258de Updated German translation (bug 690302) 2012-12-17 01:41:58 +01:00
Michael Natterer f89b149eeb gtk: fix scrolling in modal dialogs when event_widget is insensitive
When checking for modal grabs in gtk_main_do_event(), forward
GDK_SCROLL events to event_widget, even if it is insensitive.
(cherry picked from commit 343f1706bd)
2012-12-14 15:54:43 +01:00
Chun-wei Fan 136c719997 Bug 668239 - texts disappear when notebook switch page at zh_CN locate
In gtkimcontextime.c, use gdk_win32_window_get_impl_hwnd() to get to
the impl's existing native window instead of GDK_WINDOW_HWND() which
implicitly ensures a native window for the widget itself. This seems
to work around whatever GDK problem with native subwindows and fixes
the bug.

This is based on Michael Natterer's fix for gtk-2-24.
2012-12-13 11:03:01 +08:00
Michael Natterer 9d7461370c quartz: fix crash in the recent clipboard "fix", and really fix it
We must not release the GtkClipboardOwner in pasteboardChangedOwner
becaue we don't own a reference to ourselves (NSPasteboard does).
Instead, release the owner right after setting it, transferring
ownership to NSPasteboard

Also, fix repeated setting of the same owner by keeping the
owner around in GtkCLipboard, and re-use it if "user_data"
doesn't change. To avoid clipboard_unset()ting our own contents
in the process, add an ugly "setting_same_owner" boolean to
GtkClipboardOwner, set it during re-setting the same owner,
and avoid calling clipboard_unset() from pasteboardChangedOwner
if it's TRUE.
(cherry picked from commit 4a8df7a33c)
2012-12-07 12:33:39 +01:00
Benjamin Otte c3508c9fa3 stylecontext: Always recompute font
This is necessary  because values in a GtkCssComputedValues can change
now. So if the font-size is inherited or animated, the cached value will
be outdated.
2012-12-05 18:43:56 +01:00
Marek Kasik 39bc5d3b66 printing: Call mark_printer_active() with correct parameters
Revert the second part of the commit
6ad6f719c6. mark_printer_active()
was called without its second parameter in g_list_free_full().
2012-12-04 15:50:13 +01:00
Michael Natterer 0b7d04fcdd Bug 626499 - GtkClipboard unnotified on change of OS X pasteboard owner
pasteboardChangedOwner is not called as reliably as we'd want to get it,
so keep track of [pasteboard changeCount] and drop clipboard ownership
when a change happened. Also better unset the clipboard content redundantly
in a few places rather than missing one, and reorder the code in
gtk_clipboard_set_contents() so that the new aggressive unsetting
won't unset the clipboard under our feet when we call
[pasteboard declareTypes].
(cherry picked from commit f2b74db5dc)
2012-12-04 14:44:05 +01:00
Michael Natterer 423f97c3af gtk: convert keyvals to unicode before committing to the imcontext
(cherry picked from commit 9eea724e3b)
2012-11-30 15:13:00 +01:00
Michael Natterer 4d474f4613 gtk: add more OSX special casing for the deadacute and deaddoubleacute keys
So " plus foo prduces foo-with-diaereses and ' plus c produces
c-with-cedilla.
(cherry picked from commit f619f91a8f)
2012-11-30 15:12:37 +01:00
Alan McGovern dcc78e96d8 Fix broken function pointer declarations on windows
Both flashing a window and setting the window opacity were using
incorrect declarations for function pointers. They were missing the
WINAPI annotation as defined in windows.h. As a result, the stack
could be corrupted when these functions were invoked.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=689235
(cherry picked from commit 5637ef1f97)
2012-11-29 15:08:37 +01:00
Michael Natterer 200aab2f7f quartz: add mountain lion as version 8 to enum GdkOSXVersion
Also use GDK_OSX_UNSUPPORTED instead of 0 in gdk_quartz_osx_version().
(cherry picked from commit 9644e910a8)
2012-11-29 15:02:27 +01:00
Michael Natterer cfe1b0263f quartz: call Gestalt() only once per session in gdk_quartz_osx_version()
Thanks to Paul Davis for pointing this out.
(cherry picked from commit d6533ffc44)
2012-11-29 15:02:19 +01:00
Benjamin Berg 885d028c20 Use the ppd groups "name" instead of "text" (bug #687065)
This commit fixes a regression caused by a patch to remove Cups 1.2
ifdefs. This resulted in the "installable options" to appear in the
print dialog.
2012-11-29 10:08:31 +01:00
Piotr Drąg 474d742a0e Updated POTFILES.skip 2012-11-26 22:43:23 +01:00
David King 1837787ce6 docs: Add gtk-doc comment for GtkTreeRowReference
https://bugzilla.gnome.org/show_bug.cgi?id=93381
2012-11-26 14:13:22 +00:00
Benjamin Otte 94fecf591a reftests: Add reftest for broken fixed height mode
https://bugzilla.gnome.org/show_bug.cgi?id=687816
2012-11-26 00:24:34 +01:00
Benjamin Otte 335ede0f83 treeview: Delay computing fixed height
In the setter, we only set fixed height mode and queue a revalidation of
the row heights.

https://bugzilla.gnome.org/show_bug.cgi?id=687816
2012-11-26 00:24:27 +01:00
David King 1dbf309359 docs: gtk_file_chooser_get_filename() returns absolute paths
The documentation for gtk_file_chooser_get_filenames() states that the
returned filenames are absolute paths, and uses g_file_get_path() to
construct the filename. The same function is used to construct the
filename in gtk_file_chooser_get_filename(), so it should also return
absolute paths.

https://bugzilla.gnome.org/show_bug.cgi?id=371034
2012-11-24 19:58:40 +00:00
David King 16687615ed docs: Fix typo in gtk_tree_view_set_tooltip_column comment
https://bugzilla.gnome.org/show_bug.cgi?id=688884
2012-11-22 22:25:43 +00:00
David King 1bad36ae1d docs: Improve GtkTreeModel iteration pattern
Iterating over the model in this way means that use of continue is less
error-prone, as the increment is part of the loop construct.

https://bugzilla.gnome.org/show_bug.cgi?id=548793
2012-11-22 21:34:58 +00:00
David King 92f536b907 docs: Correct GtkWidget::scroll-event mask documentation
Since GTK+ 3.3.18, GDK_SCROLL_MASK has been used as the mask for scroll
events. Update the documentation to reflect this.

https://bugzilla.gnome.org/show_bug.cgi?id=677339
2012-11-22 21:34:57 +00:00
Martin Pitt 61cb32fbf9 aboutdialog: Fix add_credit_section() annotations
The people argument is an array.

https://mail.gnome.org/archives/python-hackers-list/2012-November/msg00010.html
2012-11-22 14:57:33 +01:00
Michael Natterer 07d04fb0f8 gtk: don't let insensitive children eat scroll events when bubbling down
When event capturing is enabled, stop propagating scroll events
at insensitive widgets, but don't handle them (don't return TRUE),
so they can bubble up again and reach their handling widgets.
(cherry picked from commit 2d9454363f)
2012-11-22 13:54:55 +01:00
Wouter Bolsterlee 3a03638e2e Updated Dutch translation 2012-11-22 12:02:09 +01:00
Sweta Kothari 53dc151e9f Updated gujarati file 2012-11-22 13:01:43 +05:30
Sweta Kothari 3a0f851238 Updated gujarati file 2012-11-21 14:44:54 +05:30
Camillo Lugaresi 5245908d45 Bug 688710 - splashscreen shouldn't be always on top on OS X
Activate the "hides on deactivate" behavior for splashscreens,
torn-off menus, utility windows, tooltips and notifications: when
another application is brought to the front, these windows are hidden
so as not to obscure it. This is the expected behavior for
application-specific floating windows on OS X.
(cherry picked from commit 0596f5591f)
2012-11-20 22:06:00 +01:00
Michael Natterer a90714c9db quartz: fix the mapping of GDK_KP_Enter in known_numeric_keys[]
so it will actually be used, instead of delivering GDK_Return
when it should be GDK_KP_Enter.
(cherry picked from commit d0af25f12c)
2012-11-20 19:19:12 +01:00
Michael Natterer d9f2ae7864 quartz: always send GDK_NOTIFY_NONLINEAR crossing events
so GtkMenu works properly. This is not right, but not more
wrong than always sending GDK_NOTIFY_ANCESTOR either.
(cherry picked from commit 455a0ecc1c)
2012-11-20 10:42:32 +01:00
Michael Natterer 1a0e861fcd Bug 672193 - windows (including menus) shown multiple times don't...
Based on a patch from Paul Davis, inject synthetic enter events directly
into the Quartz event stream, instead of trying to synthesize them in GDK.

This seems to magically fix most combo box popup weirdness, I guess
some code is relying on a specfic order of events, or any other state
imposed by the "proper" code path of events coming in the usual way.

The patch also removes _gdk_quartz_events_send_enter_notify_event()
which is now obsolete.
(cherry picked from commit 2d5ad5f54e)
2012-11-20 10:31:46 +01:00
Sweta Kothari 13dd7c962c Updated gujarati file 2012-11-20 14:11:39 +05:30
Matthias Clasen bb4a34e3c5 Avoid infinite recursion in the ime input module 2012-11-19 09:31:17 -05:00
Michael Natterer dae0fb99a4 quartz: use the real current event time for generated motion events
(cherry picked from commit b4a30877a9)
2012-11-18 20:18:24 +01:00
Michael Natterer b9930902f3 quartz: move tooltips window to the topmost level
so they can appear on top of popup menus. Also, reorder the switch()
statement in window_type_hint_to_level() so it resembles the stacking
order, to avoid confision like this in the future. Fixed bug 688512.
(cherry picked from commit 1a2509a6ab)
2012-11-18 17:49:32 +01:00
Cosimo Cecchi f357d3a42c cssshadowsvalue: handle gtk_css_value_transition returning NULL
The implementation of transition for GtkCssShadowValue can return NULL
at least when the two values have a different inset; all other parts of
the GTK/CSS machinery (e.g. GtkCssArrayValue) handle this by returning
NULL too. Instead, GtkCssShadowsValue was returning an invalid value,
where "len" was set, but some values in the array were NULL, which would
lead to a segfault when this value is later evaluated by the compute
function.

Fix this by making GtkCssShadowsValue return NULL if a shadow transition
fails, like GtkCssArrayValue does.

https://bugzilla.gnome.org/show_bug.cgi?id=686013
2012-11-15 16:03:29 -05:00
Benjamin Otte 643d1d9541 cssprovider: Handle non-existing section
Otherwise we'll get warnings on errors when CSS debug is disabled.
2012-11-15 19:22:03 +01:00
Michael Natterer aec3295cda quartz: GdkQuartzWindow -> GdkQuartzNSWindow was forgotten in one place
(cherry picked from commit 18fdc975be)
2012-11-15 13:20:20 +01:00
Michael Natterer 74083e18e1 quartz: filter out button press events on the window frame
Don't try to handle button press events on the window frame, they
have out-of-window coordinates. Also, break grabs on such events
so popup menus go away.
Patch from Kristian Rietveld, fixes bug 684419.
(cherry picked from commit ed5d7fed89)
2012-11-15 12:38:13 +01:00
Sweta Kothari dd6ef4339b Updated gujarati file 2012-11-15 16:52:06 +05:30
Sweta Kothari f25e41499c Updated gujarati file 2012-11-15 12:08:45 +05:30
Benjamin Otte f32cd8137e stylecontext: Add a flag to force style_updated() emission
This is used in gtk_widget_reset_style() (via GTK_CSS_CHANGE_ANY) now,
and that makes GtkSettings font related changes work again.
2012-11-14 13:28:14 +01:00
Michael Natterer 0ea3e674c1 quartz: move SPLASHSCREEN-hinted windows to NSStatusWindowLevel
which does not really have a different effect than the previously
used NSPopUpMenuWindowLevel, but is what all code examples I found
are using, and it does make more sense.
(cherry picked from commit 47f0e3f1e1)
2012-11-13 20:10:13 +01:00
Timothy Arceri 3ad6d77d45 Remove bookmark duplicate of shortcut
Application code can set shortcut folders that are already bookmarks.
This code causes the bookmarks to be refreshed after the shortcut is
added removing any possible bookmark duplicates

https://bugzilla.gnome.org/show_bug.cgi?id=577806
2012-11-13 12:55:13 -06:00
Chun-wei Fan d28a438dbf Visual C++ property sheets: Update GtkBinaryVersion
This should now be 3.0.0 like the autotools build...
2012-11-13 14:24:24 +08:00
Ran Benita 02c5953102 wayland: update to work with stable libxkbcommon
libxkbcommon has had some changes to its API. However, it now has a
stable release (0.2.0), so this makes the necessary changes, and
replaces all uses of the deprecated API.

Signed-off-by: Ran Benita <ran234@gmail.com>

(cherry picked from commit 21cf5a7e00)
2012-11-12 18:39:41 +00:00
Kristian Høgsberg f093c0c169 configure.ac: Look for wayland-client 1.0.0
(cherry picked from commit ca0662dba4)
2012-11-12 18:39:16 +00:00
Scott Moreau c0c72b1d40 wayland: Update to reflect protocol changes
(cherry picked from commit e5b88f1bdd)
2012-11-12 18:38:53 +00:00
Matthias Clasen 1ab90ebb17 Bump version 2012-11-10 15:40:40 -05:00
Matthias Clasen 6312dba24b 3.6.2 2012-11-10 14:07:22 -05:00
Benjamin Otte edac0e6c40 tests: Add an intersection test for the recent bug
Just using the hardcoded bitmasks triggered the bug fixed in commit
e8f2eeac92 - so just do that as the test.
2012-11-10 18:58:53 +01:00
Benjamin Otte c6c92aa71b tests: Add some bitmasks to the hardcoded list
The bitmasks with the 31st, 32nd and 63rd bit set are added. The make up
the largest bitmasks on 32bit/64bit that can be represented without
allocating and the smallest bitmask on 32bit that must be allocated.
2012-11-10 18:58:53 +01:00
Benjamin Otte 919ab92ac1 bitmask: Fix intersection code
With the fix in 77912a65e2, another bug
got visible: booleans are 32 bits, so if the intersection between the 2
bitmasks happened in higher bits, the return value would be truncated to
FALSE.

This actually made slider handles disappear, so it was pretty visible.
2012-11-10 18:58:53 +01:00
Alexander Larsson 4504a7a626 Make _gtk_css_lookup_get_missing inline
This is called a lot in the loop in gtk_css_style_provider_lookup which
actually showed up on profiles.
(cherry picked from commit e60c9219f1)
2012-11-09 17:07:37 +01:00
Alexander Larsson 3c76649503 gtk_css_style_provider_lookup: minor loop optimiziation
This is a minor performance improvement but this loop
is run a lot so it actually matters in large state
changes.
(cherry picked from commit 1c4158a649)
2012-11-09 17:07:31 +01:00
Alexander Larsson 1bbb7555f0 Exit early in gtk_style_context_update_cache codepaths
If lookup->missing is empty we don't need to continue looking.
We short circuit in several places as this can happen
after iteratively makeign lookup->missing smaller.
(cherry picked from commit 55d65571f3)

Conflicts:
	gtk/gtkstylecontext.c
2012-11-09 17:07:17 +01:00
Alexander Larsson a4374fdcbc Fix cnp bug in _gtk_bitmask_intersects
We need to use the allocated codepath if *any* argument is
allocated, not if one arg is not allocated.
This bug caused unnecessary calls to _gtk_bitmask_is_allocated,
as well as return completely wrong result if both bitmask are
allocated.
(cherry picked from commit 77912a65e2)
2012-11-09 10:20:09 +01:00
Cosimo Cecchi 7349549cdf text-cell-accessible: fix a double unref
We're unreffing the GtkCellRenderer object twice, causing the
application to crash when trying to access the renderer later.

https://bugzilla.gnome.org/show_bug.cgi?id=687872
2012-11-07 15:48:22 -05:00
Cheng-Chia Tseng b92c802621 Updated Traditional Chinese translation(Hong Kong and Taiwan) 2012-11-07 02:42:49 +08:00
Benjamin Otte 828fcdac2c gradient: Add color stops to the right gradient
This was causing an infinite loop happily eating up memory.

https://bugzilla.gnome.org/show_bug.cgi?id=687467
2012-11-06 20:52:08 +01:00
Benjamin Otte dd1460b707 tests: Include config.h 2012-11-06 20:51:15 +01:00
Benjamin Otte a72782b29a Disable deprecation checks for all libraries we depend on on stable branches.
This is so newer versions of those libraries don't cause more warnings
with a stable GTK version.
We don't ever want to turn off deprecation warnings for master however,
because that's where we get rid of deprecated API we use.

Note that only glib allows use to easily do this, so nothing is done for
Pango, gdk-pixbuf or Cairo here.
2012-11-06 20:50:09 +01:00
Benjamin Otte 8a0f5159a1 cssimage: Fix huge memleak
When transitioning gradients, we were leaking the gradient structs. Not
good.

https://bugzilla.gnome.org/show_bug.cgi?id=687467
2012-11-06 17:53:20 +01:00
Cosimo Cecchi d9dd5776e9 css: Fix copy/paste error
Benjamin replaced start with end in a bunch of locations, but not all of
them apparently.
2012-11-06 17:53:20 +01:00
Benjamin Otte a2f0b74020 csscomputedvalues: Plug a leak 2012-11-06 17:53:20 +01:00
Benjamin Otte e2078e0309 css: Plug a leak in gradient code 2012-11-06 17:48:42 +01:00
Paolo Borelli ebd04b8a1d gtkmenubutton: remove weak pointer when needed
We must make sure to remove the weak pointer when disposing the widget
or when resetting the align widget otherwise glib will try to nullify
invalid memory.
2012-11-04 17:13:53 +01:00
Paolo Borelli 44b575443d gtkmenubutton: set menu to NULL in dispose.
Prevent menu to be detached multiple times.
2012-11-04 17:13:35 +01:00
Federico Mena Quintero fa3d04e556 bgo#687196 - Fix model corruption during file removal
The main problem is that we were emitting the row-deleted signal for the model in the middle
of the process that actually deletes the row from the model (remove the row from the array,
update the model->file_lookup hash table, etc.).  In the model's caller, one of the row-deleted
callbacks was requesting an iter, which caused the model to revalidate itself - but it did
this while it was in an inconsistent state.  This led to an assertion failure later when the
model resorted itself.

The fix in remove_file() is like this:

* The filteredness/visibility of the deleted node is not updated.  The
  node will simply be gone; we don't need to update those values at
  all.

* We invalidate just the node that is being deleted.

* The model->file_lookup hash table is not completely nuked; instead,
  we carefully adjust its indices.

* The row-deleted signal is only emitted at the very end, when
  deletion is complete and the model is consistent.

Many thanks to William Hua for doing the detective work on this bug!

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2012-11-02 14:17:32 -06:00
Federico Mena Quintero 794584b13c Make freeze_updates() and thaw_updates() static functions
They were in the semi-public API of GtkFileSystemModel, but never actually used outside of it.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2012-11-02 14:17:26 -06:00
Federico Mena Quintero e1c51092df Comments on how the filtering and sorting processes work
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2012-11-02 14:17:18 -06:00
Federico Mena Quintero a3e247cdbb Remove argument to _gtk_file_system_model_update_file() that should not be part of the internal API
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2012-11-02 14:17:09 -06:00
Federico Mena Quintero 5f209cd4c1 Rename gtk_tree_path_new_from_node() to tree_path_new_from_node()
This is a function internal to the file system model; let's not pollute the gtk_tree_path namespace.

Also, make the 'i' variable into 'r' as it refers to a row index, not a file-array index (for
consistency with the docs and the rest of the code).

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2012-11-02 14:17:00 -06:00
Seán de Búrca 605ad379c9 Updated Irish translation 2012-11-02 03:21:35 -06:00
Benjamin Otte 73c64b4b67 sizegroup: Always at least use widget's size
When widgets were hidden, they were otherwise assigned a 0 size.

https://bugzilla.gnome.org/show_bug.cgi?id=677609
2012-11-01 20:53:55 +01:00
Benjamin Otte ba247df40c settings: Reset all styles when the enable-animations settings changes
https://bugzilla.gnome.org/show_bug.cgi?id=686021
2012-11-01 12:28:33 +01:00
Benjamin Otte 9bb4be9586 Raleigh: Fix spinners with disabled animations
When animations are disabled, active and inactive spinners should look
different.

https://bugzilla.gnome.org/show_bug.cgi?id=686021
2012-11-01 12:28:05 +01:00
Murray Cumming 51484b1223 iconhelper: Treat the empty string as a NULL stock-id 2012-10-29 07:10:08 +01:00
Carlos Garnacho 6d8b6bd1bb texthandles: set input shape on handles' window
This improves both interaction and theming, as it allows
arbitrary handle shapes while just being draggable from
the visible areas.

This way themes can set up handles with the hotspot visually
displaced from the horizontal center, as long as the hotspot
lies centered in the image/svg asset.
2012-10-26 19:01:37 +02:00
Carlos Garnacho 923bd15a53 texthandle: Fix shape setup on non-composited environments
The check on the handle to be drawn on the mask was based on the yet to
be set priv->windows pointers, pass explicitly the handle position to
have the shape correctly initialized on non-composited environments
2012-10-26 19:01:27 +02:00
John Ralls 09be79aaae Fix typo from f2ab3af 2012-10-25 11:03:17 -07:00
Cosimo Cecchi 9b748d864e scrollbar: remove unused variable
My bad.
2012-10-22 18:43:15 -04:00
Cosimo Cecchi ff4a4b2c9c scale: update style properties on GtkRange at init
Same fix as in ef027c93d4, but for
the GtkScale subclass of GtkRange.

https://bugzilla.gnome.org/show_bug.cgi?id=686280
2012-10-22 13:14:43 -04:00
Cosimo Cecchi 1639960a86 scrollbar: update style properties on GtkRange at init
GtkScrollbar used to rely on style-updated being emitted every time
after the widget was created in order to set the right values from its
style properties on GtkRange.
Nowadays we try to be smarter and avoid emitting style-updated at
creation time, so we need to manually initialize the GtkRange values.

This fixes a regression from 35e36b9fe5.

https://bugzilla.gnome.org/show_bug.cgi?id=686280
2012-10-22 11:49:13 -04:00
Matthias Clasen df726fde83 Fix duplicate columns in filechooser entry completion
This partically reverts commit
331bba1ad6, which broke documented
behaviour.
2012-10-17 21:28:10 -04:00
Cosimo Cecchi cf3913b089 scrolledwindow: set GDK_EXPOSURE_MASK on the overshoot window
Currently we use gtk_style_context_set_background() when the state flags
change in order to propagate the background color to the overshoot
window, but this is actually only needed because the window doesn't get
expose events, since we always draw a full background in draw().
This also fixes some problems when the GdkWindow of the scrolled
window's child is composited, as seen in oxygen-gtk3.

https://bugzilla.gnome.org/show_bug.cgi?id=686265
2012-10-17 09:57:54 -04:00
153 changed files with 35631 additions and 29362 deletions
+98
View File
@@ -1,3 +1,101 @@
Overview of Changes in GTK+ 3.6.5
=================================
* Bug fixes:
669808 fullscreen/unscreen was broken for Quartz on OS X
672271 File chooser seems over-enthusiastic about using sub...
687066 gtk 3.6.1 fails to build for win32
688534 gdk 3.6.2 does not build with mesa 9.0.1
691426 get_current_desktop does not interpret property data...
691515 Insufficient checks for EWMH support
691572 Touch: strengthen synthesized touch crossing events...
694742 Fix possible memory leak when GlobalAlloc() fails
694755 When clicking Activities, sometimes gnome-shell cras...
695278 Avoid passing a NULL title to setTitle
695312 Initial 'text' set in the non-numeric-only GtkSpinBu...
696171 GtkAssistant highlighted font unreadable
696202 Add GtkSpinner animation back to Win32 theme
win32: add more width to the slider to not cut it wh...
win32: add margin to scale trough
win32: set color for scale marks
win32: scale slider with marks was off by 2 pixels
win32: handle again gtk-font-name
* Translation updates:
Brazlian Portuguese
Catalan
Czech
French
Galician
German
Hungarian
Indonesian
Interlingua
Lithuanian
Polish
Serbian
Slovenian
Spanish
Overview of Changes in GTK+ 3.6.4
=================================
* Bug fixes:
691186 stylecontext: Make font hack not crash
Overview of Changes in GTK+ 3.6.3
=================================
* The Wayland backend works with Wayland 1.0.0 now
* Bug fixes:
132333 Can't add a palette to the dialog of a color button
371034 Doc for gtk_file_chooser_get_filename: Is the resulting...
548793 funny pattern for iterating GtkTreeModel
577806 gtk_file_chooser_add_shortcut_folder adds duplicates of...
626499 GtkClipboard unnotified on change of OS X pasteboard owner
668239 texts disappear when notebook switch page at zh_CN locate!
672193 windows (including menus) shown multiple times don't ge...
677339 GTK+ 3 documentation wrong about GtkWidget scroll-event...
683072 Print dialog shows cryptic status message and displays ...
687065 InstallableOptions is not filtered in cups backend
687816 GtkTreeView does not draw correctly since commit aaedc7b6
688710 [PATCH] Splash screens shouldn't stay on top of all app...
688884 Typo in gtk_tree_view_set_tooltip_column documentation
689235 Broken function declarations corrupt the stack on windows
690266 Freeze with F10/Shift-F10 on submenus
Win32: Avoid infinite recursion in the ime input module
Quartz: Fixes for splashscreen and tooltip windows
* Translation updates:
Dutch
German
Gujarati
Tamil
Uyghur
Overview of Changes in GTK+ 3.6.2
=================================
* Bug fixes:
677609 GtkSizeGroup regression in GTK+ 3.3.20
686021 spinner animation should not be subject to...
686265 scrolledwindow: set GDK_EXPOSURE_MASK on t...
686280 GtkScrollbar and GtkScale rendering broken...
687196 filesystemmodel: invalidate nodes on file ...
687467 Commit "Implement proper cross-fades for g...
687872 Segfault when attempting to get character ...
* Translation updates:
Irish
Traditional Chinese
Overview of Changes in GTK+ 3.6.1
=================================
+1 -1
View File
@@ -5,7 +5,7 @@
<CopyDir>$(GlibEtcInstallRoot)</CopyDir>
<DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)</DefDir>
<GtkApiVersion>3.0</GtkApiVersion>
<GtkBinaryVersion>2.10.0</GtkBinaryVersion>
<GtkBinaryVersion>3.0.0</GtkBinaryVersion>
<GtkDummyPrefix>\"/dummy\"</GtkDummyPrefix>
<GtkPrefixDefine>GTK_PREFIX="\"$(GtkDummyPrefix)\""</GtkPrefixDefine>
<GdkDefines>GDK_COMPILATION;G_LOG_DOMAIN="\"Gdk\""</GdkDefines>
+1 -1
View File
@@ -41,7 +41,7 @@ copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h&#x0D;&#x0A;
/>
<UserMacro
Name="GtkBinaryVersion"
Value="2.10.0"
Value="3.0.0"
/>
<UserMacro
Name="GtkDummyPrefix"
+18 -5
View File
@@ -10,8 +10,8 @@
m4_define([gtk_major_version], [3])
m4_define([gtk_minor_version], [6])
m4_define([gtk_micro_version], [2])
m4_define([gtk_interface_age], [2])
m4_define([gtk_micro_version], [6])
m4_define([gtk_interface_age], [6])
m4_define([gtk_binary_age],
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
m4_define([gtk_version],
@@ -324,7 +324,8 @@ AC_ARG_ENABLE(quartz-relocation,
AC_ARG_ENABLE(wayland-cairo-gl,
AS_HELP_STRING([--enable-wayland-cairo-gl],
[enable the use of Cairo GL in the Wayland backend]),
[enable_wayland_cairo_gl=yes])
[],
[enable_wayland_cairo_gl=no])
cairo_backends=
@@ -407,7 +408,7 @@ if test "x$enable_wayland_backend" = "xyes"; then
have_gio_unix=yes
GDK_WINDOWING="$GDK_WINDOWING
#define GDK_WINDOWING_WAYLAND"
WAYLAND_PACKAGES="wayland-client xkbcommon wayland-cursor"
WAYLAND_PACKAGES="wayland-client >= 1.0.0 xkbcommon >= 0.2.0 wayland-cursor"
if test "x$enable_wayland_cairo_gl" = "xyes"; then
WAYLAND_PACKAGES="$WAYLAND_PACKAGES wayland-egl egl"
fi
@@ -714,7 +715,6 @@ AM_PATH_GLIB_2_0(glib_required_version, :,
*** GLIB is always available from ftp://ftp.gtk.org/pub/gtk/.]),
gobject gmodule-no-export)
dnl
dnl Check for bind_textdomain_codeset, including -lintl if GLib brings it in.
dnl
gtk_save_LIBS=$LIBS
@@ -748,6 +748,19 @@ else
AC_MSG_RESULT([no])
fi
#
# Disable deprecation checks for all libraries we depend on on stable branches.
# This is so newer versions of those libraries don't cause more warnings with
# a stable GTK version.
# We don't ever want to turn off deprecation warnings for master however, because
# that's where we get rid of deprecated API we use.
#
if test m4_eval(gtk_minor_version % 2) = 0 ; then
AC_DEFINE_UNQUOTED(GLIB_DISABLE_DEPRECATION_WARNINGS, 1,
[Disable deprecation warnings from glib])
fi
dnl
saved_cflags="$CFLAGS"
saved_ldflags="$LDFLAGS"
+2 -1
View File
@@ -985,7 +985,8 @@ switch_to_pointer_grab (GdkDisplay *display,
NULL, NULL);
}
if (pointer_window != last_grab->window)
if (!info->need_touch_press_enter &&
pointer_window != last_grab->window)
synthesize_crossing_events (display, device, source_device,
last_grab->window, pointer_window,
GDK_CROSSING_UNGRAB, time, serial);
+3 -1
View File
@@ -8367,10 +8367,12 @@ send_crossing_event (GdkDisplay *display,
window_event_mask = window->event_mask;
if (type == GDK_ENTER_NOTIFY &&
pointer_info->need_touch_press_enter &&
(pointer_info->need_touch_press_enter ||
gdk_device_get_source (source_device) == GDK_SOURCE_TOUCHSCREEN) &&
mode != GDK_CROSSING_TOUCH_BEGIN &&
mode != GDK_CROSSING_TOUCH_END)
{
pointer_info->need_touch_press_enter = TRUE;
block_event = TRUE;
}
else if (type == GDK_LEAVE_NOTIFY)
+40
View File
@@ -141,6 +141,38 @@
return inMove;
}
-(void)checkSendEnterNotify
{
GdkWindow *window = [[self contentView] gdkWindow];
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
/* When a new window has been created, and the mouse
* is in the window area, we will not receive an NSMouseEntered
* event. Therefore, we synthesize an enter notify event manually.
*/
if (!initialPositionKnown)
{
initialPositionKnown = YES;
if (NSPointInRect ([NSEvent mouseLocation], [self frame]))
{
NSEvent *event;
event = [NSEvent enterExitEventWithType: NSMouseEntered
location: [self mouseLocationOutsideOfEventStream]
modifierFlags: 0
timestamp: [[NSApp currentEvent] timestamp]
windowNumber: [impl->toplevel windowNumber]
context: NULL
eventNumber: 0
trackingNumber: [impl->view trackingRect]
userData: nil];
[NSApp postEvent:event atStart:NO];
}
}
}
-(void)windowDidMove:(NSNotification *)aNotification
{
GdkWindow *window = [[self contentView] gdkWindow];
@@ -157,6 +189,8 @@
event->configure.height = window->height;
_gdk_event_queue_append (gdk_display_get_default (), event);
[self checkSendEnterNotify];
}
-(void)windowDidResize:(NSNotification *)aNotification
@@ -186,6 +220,8 @@
event->configure.height = window->height;
_gdk_event_queue_append (gdk_display_get_default (), event);
[self checkSendEnterNotify];
}
-(id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)styleMask backing:(NSBackingStoreType)backingType defer:(BOOL)flag screen:(NSScreen *)screen
@@ -283,6 +319,8 @@
[impl->toplevel orderFront:nil];
inShowOrHide = NO;
[self checkSendEnterNotify];
}
- (void)hide
@@ -293,6 +331,8 @@
inShowOrHide = YES;
[impl->toplevel orderOut:nil];
inShowOrHide = NO;
initialPositionKnown = NO;
}
- (BOOL)trackManualMove
+1
View File
@@ -23,6 +23,7 @@
@interface GdkQuartzNSWindow : NSWindow {
BOOL inMove;
BOOL inShowOrHide;
BOOL initialPositionKnown;
/* Manually triggered move/resize (not by the window manager) */
BOOL inManualMove;
-9
View File
@@ -167,15 +167,6 @@
owner:self
userData:nil
assumeInside:NO];
if (NSPointInRect ([[self window] convertScreenToBase:[NSEvent mouseLocation]], rect))
{
/* When a new window (and thus view) has been created, and the mouse
* is in the window area, we will not receive an NSMouseEntered
* event. Therefore, we synthesize an enter notify event manually.
*/
_gdk_quartz_events_send_enter_notify_event (gdk_window);
}
}
-(void)viewDidMoveToWindow
+86 -51
View File
@@ -401,34 +401,89 @@ get_window_point_from_screen_point (GdkWindow *window,
*y = window->height - point.y;
}
static gboolean
is_mouse_button_press_event (NSEventType type)
{
switch (type)
{
case NSLeftMouseDown:
case NSRightMouseDown:
case NSOtherMouseDown:
return TRUE;
}
return FALSE;
}
static GdkWindow *
get_toplevel_from_ns_event (NSEvent *nsevent,
NSPoint *screen_point,
gint *x,
gint *y)
{
GdkWindow *toplevel;
GdkWindow *toplevel = NULL;
if ([nsevent window])
{
GdkQuartzView *view;
NSPoint point;
NSPoint point, view_point;
NSRect view_frame;
view = (GdkQuartzView *)[[nsevent window] contentView];
toplevel = [view gdkWindow];
point = [nsevent locationInWindow];
*screen_point = [[nsevent window] convertBaseToScreen:point];
view_point = [view convertPoint:point fromView:nil];
view_frame = [view frame];
*x = point.x;
*y = toplevel->height - point.y;
/* NSEvents come in with a window set, but with window coordinates
* out of window bounds. For e.g. moved events this is fine, we use
* this information to properly handle enter/leave notify and motion
* events. For mouse button press/release, we want to avoid forwarding
* these events however, because the window they relate to is not the
* window set in the event. This situation appears to occur when button
* presses come in just before (or just after?) a window is resized and
* also when a button press occurs on the OS X window titlebar.
*
* By setting toplevel to NULL, we do another attempt to get the right
* toplevel window below.
*/
if (is_mouse_button_press_event ([nsevent type]) &&
(view_point.x < view_frame.origin.x ||
view_point.x >= view_frame.origin.x + view_frame.size.width ||
view_point.y < view_frame.origin.y ||
view_point.y >= view_frame.origin.y + view_frame.size.height))
{
toplevel = NULL;
/* This is a hack for button presses to break all grabs. E.g. if
* a menu is open and one clicks on the title bar (or anywhere
* out of window bounds), we really want to pop down the menu (by
* breaking the grabs) before OS X handles the action of the title
* bar button.
*
* Because we cannot ingest this event into GDK, we have to do it
* here, not very nice.
*/
_gdk_quartz_events_break_all_grabs (get_time_from_ns_event (nsevent));
}
else
{
*screen_point = [[nsevent window] convertBaseToScreen:point];
*x = point.x;
*y = toplevel->height - point.y;
}
}
else
if (!toplevel)
{
/* Fallback used when no NSWindow set. This happens e.g. when
* we allow motion events without a window set in gdk_event_translate()
* that occur immediately after the main menu bar was clicked/used.
* This fallback will not return coordinates contained in a window's
* titlebar.
*/
*screen_point = [NSEvent mouseLocation];
toplevel = find_toplevel_under_pointer (_gdk_display,
@@ -475,7 +530,7 @@ generate_motion_event (GdkWindow *window)
event->any.type = GDK_MOTION_NOTIFY;
event->motion.window = window;
event->motion.time = GDK_CURRENT_TIME;
event->motion.time = get_time_from_ns_event ([NSApp currentEvent]);
event->motion.x = x;
event->motion.y = y;
event->motion.x_root = x_root;
@@ -534,39 +589,6 @@ _gdk_quartz_events_update_focus_window (GdkWindow *window,
}
}
void
_gdk_quartz_events_send_enter_notify_event (GdkWindow *window)
{
NSPoint screen_point;
GdkEvent *event;
gint x, y, x_root, y_root;
event = gdk_event_new (GDK_ENTER_NOTIFY);
event->any.window = NULL;
event->any.send_event = FALSE;
screen_point = [NSEvent mouseLocation];
_gdk_quartz_window_nspoint_to_gdk_xy (screen_point, &x_root, &y_root);
get_window_point_from_screen_point (window, screen_point, &x, &y);
event->crossing.window = window;
event->crossing.subwindow = NULL;
event->crossing.time = GDK_CURRENT_TIME;
event->crossing.x = x;
event->crossing.y = y;
event->crossing.x_root = x_root;
event->crossing.y_root = y_root;
event->crossing.mode = GDK_CROSSING_NORMAL;
event->crossing.detail = GDK_NOTIFY_ANCESTOR;
event->crossing.state = _gdk_quartz_events_get_current_keyboard_modifiers () |
_gdk_quartz_events_get_current_mouse_modifiers ();
gdk_event_set_device (event, _gdk_display->core_pointer);
append_event (event, TRUE);
}
void
_gdk_quartz_events_send_map_event (GdkWindow *window)
{
@@ -600,6 +622,18 @@ find_toplevel_under_pointer (GdkDisplay *display,
if (toplevel && WINDOW_IS_TOPLEVEL (toplevel))
get_window_point_from_screen_point (toplevel, screen_point, x, y);
if (toplevel)
{
/* If the coordinates are out of window bounds, this toplevel is not
* under the pointer and we thus return NULL. This can occur when
* toplevel under pointer has not yet been updated due to a very recent
* window resize. Alternatively, we should no longer be relying on
* the toplevel_under_pointer value which is maintained in gdkwindow.c.
*/
if (*x < 0 || *y < 0 || *x >= toplevel->width || *y >= toplevel->height)
return NULL;
}
return toplevel;
}
@@ -772,6 +806,8 @@ find_window_for_ns_event (NSEvent *nsevent,
view = (GdkQuartzView *)[[nsevent window] contentView];
toplevel = get_toplevel_from_ns_event (nsevent, &screen_point, x, y);
if (!toplevel)
return NULL;
_gdk_quartz_window_nspoint_to_gdk_xy (screen_point, x_root, y_root);
event_type = [nsevent type];
@@ -1085,8 +1121,9 @@ synthesize_crossing_event (GdkWindow *window,
switch ([nsevent type])
{
case NSMouseEntered:
/* Enter events are considered always to be from the root window as we
* can't know for sure from what window we enter.
/* Enter events are considered always to be from another toplevel
* window, this shouldn't negatively affect any app or gtk code,
* and is the only way to make GtkMenu work. EEK EEK EEK.
*/
if (!(window->event_mask & GDK_ENTER_NOTIFY_MASK))
return FALSE;
@@ -1096,14 +1133,11 @@ synthesize_crossing_event (GdkWindow *window,
x_root, y_root,
GDK_ENTER_NOTIFY,
GDK_CROSSING_NORMAL,
GDK_NOTIFY_ANCESTOR);
GDK_NOTIFY_NONLINEAR);
return TRUE;
case NSMouseExited:
/* Exited always is to the root window as far as we are concerned,
* since there is no way to reliably get information about what new
* window is entered when exiting one.
*/
/* See above */
if (!(window->event_mask & GDK_LEAVE_NOTIFY_MASK))
return FALSE;
@@ -1112,7 +1146,7 @@ synthesize_crossing_event (GdkWindow *window,
x_root, y_root,
GDK_LEAVE_NOTIFY,
GDK_CROSSING_NORMAL,
GDK_NOTIFY_ANCESTOR);
GDK_NOTIFY_NONLINEAR);
return TRUE;
default:
@@ -1309,9 +1343,9 @@ gdk_event_translate (GdkEvent *event,
}
/* Also when in a manual resize, we ignore events so that these are
* pushed to GdkQuartzWindow's sendEvent handler.
* pushed to GdkQuartzNSWindow's sendEvent handler.
*/
if ([(GdkQuartzWindow *)nswindow isInManualResize])
if ([(GdkQuartzNSWindow *)nswindow isInManualResize])
return FALSE;
/* Find the right GDK window to send the event to, taking grabs and
@@ -1439,7 +1473,8 @@ gdk_event_translate (GdkEvent *event,
if (dx != 0.0 || dy != 0.0)
{
#ifdef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
if (gdk_quartz_osx_version() >= GDK_OSX_LION &[nsevent hasPreciseScrollingDeltas])
if (gdk_quartz_osx_version() >= GDK_OSX_LION &&
[nsevent hasPreciseScrollingDeltas])
{
GdkEvent *emulated_event;
+8 -3
View File
@@ -28,9 +28,14 @@ GdkWindow *_gdk_root = NULL;
GdkOSXVersion
gdk_quartz_osx_version (void)
{
gint minor;
OSErr err = Gestalt (gestaltSystemVersionMinor, &minor);
g_return_val_if_fail (err == noErr, GDK_OSX_UNSUPPORTED);
static gint32 minor = GDK_OSX_UNSUPPORTED;
if (minor == GDK_OSX_UNSUPPORTED)
{
OSErr err = Gestalt (gestaltSystemVersionMinor, (SInt32*)&minor);
g_return_val_if_fail (err == noErr, GDK_OSX_UNSUPPORTED);
}
if (minor < GDK_OSX_MIN)
return GDK_OSX_UNSUPPORTED;
+1 -1
View File
@@ -176,7 +176,7 @@ const static struct {
{ 67, GDK_KEY_asterisk, GDK_KEY_KP_Multiply },
{ 69, GDK_KEY_plus, GDK_KEY_KP_Add },
{ 75, GDK_KEY_slash, GDK_KEY_KP_Divide },
{ 76, 0x01000003, GDK_KEY_KP_Enter },
{ 76, GDK_KEY_Return, GDK_KEY_KP_Enter },
{ 78, GDK_KEY_minus, GDK_KEY_KP_Subtract },
{ 81, GDK_KEY_equal, GDK_KEY_KP_Equal },
{ 82, GDK_KEY_0, GDK_KEY_KP_0 },
-1
View File
@@ -64,7 +64,6 @@ void _gdk_quartz_events_send_map_event (GdkWindow *window);
GdkModifierType _gdk_quartz_events_get_current_keyboard_modifiers (void);
GdkModifierType _gdk_quartz_events_get_current_mouse_modifiers (void);
void _gdk_quartz_events_send_enter_notify_event (GdkWindow *window);
void _gdk_quartz_events_break_all_grabs (guint32 time);
/* Event loop */
+2 -1
View File
@@ -48,7 +48,8 @@ typedef enum
GDK_OSX_LEOPARD = 5,
GDK_OSX_SNOW_LEOPARD = 6,
GDK_OSX_LION = 7,
GDK_OSX_CURRENT = 7,
GDK_OSX_MOUNTAIN_LION = 8,
GDK_OSX_CURRENT = 8,
GDK_OSX_NEW = 99
} GdkOSXVersion;
+89 -24
View File
@@ -2315,28 +2315,31 @@ gdk_quartz_window_focus (GdkWindow *window,
}
}
static
gint window_type_hint_to_level (GdkWindowTypeHint hint)
static gint
window_type_hint_to_level (GdkWindowTypeHint hint)
{
/* the order in this switch statement corresponds to the actual
* stacking order: the first group is top, the last group is bottom
*/
switch (hint)
{
case GDK_WINDOW_TYPE_HINT_DOCK:
case GDK_WINDOW_TYPE_HINT_UTILITY:
return NSFloatingWindowLevel;
case GDK_WINDOW_TYPE_HINT_POPUP_MENU:
case GDK_WINDOW_TYPE_HINT_COMBO:
case GDK_WINDOW_TYPE_HINT_DND:
case GDK_WINDOW_TYPE_HINT_TOOLTIP:
return NSPopUpMenuWindowLevel;
case GDK_WINDOW_TYPE_HINT_NOTIFICATION:
case GDK_WINDOW_TYPE_HINT_SPLASHSCREEN:
return NSStatusWindowLevel;
case GDK_WINDOW_TYPE_HINT_MENU: /* Torn-off menu */
case GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU: /* Menu from menubar */
return NSTornOffMenuWindowLevel;
case GDK_WINDOW_TYPE_HINT_NOTIFICATION:
case GDK_WINDOW_TYPE_HINT_TOOLTIP:
return NSStatusWindowLevel;
case GDK_WINDOW_TYPE_HINT_SPLASHSCREEN:
case GDK_WINDOW_TYPE_HINT_POPUP_MENU:
case GDK_WINDOW_TYPE_HINT_COMBO:
case GDK_WINDOW_TYPE_HINT_DND:
return NSPopUpMenuWindowLevel;
case GDK_WINDOW_TYPE_HINT_DOCK:
case GDK_WINDOW_TYPE_HINT_UTILITY:
return NSFloatingWindowLevel;
case GDK_WINDOW_TYPE_HINT_NORMAL: /* Normal toplevel window */
case GDK_WINDOW_TYPE_HINT_DIALOG: /* Dialog window */
@@ -2351,7 +2354,7 @@ gint window_type_hint_to_level (GdkWindowTypeHint hint)
return NSNormalWindowLevel;
}
static gboolean
static gboolean
window_type_hint_to_shadow (GdkWindowTypeHint hint)
{
switch (hint)
@@ -2381,13 +2384,31 @@ window_type_hint_to_shadow (GdkWindowTypeHint hint)
return FALSE;
}
static gboolean
window_type_hint_to_hides_on_deactivate (GdkWindowTypeHint hint)
{
switch (hint)
{
case GDK_WINDOW_TYPE_HINT_UTILITY:
case GDK_WINDOW_TYPE_HINT_MENU: /* Torn-off menu */
case GDK_WINDOW_TYPE_HINT_SPLASHSCREEN:
case GDK_WINDOW_TYPE_HINT_NOTIFICATION:
case GDK_WINDOW_TYPE_HINT_TOOLTIP:
return TRUE;
default:
break;
}
return FALSE;
}
static void
gdk_quartz_window_set_type_hint (GdkWindow *window,
GdkWindowTypeHint hint)
{
GdkWindowImplQuartz *impl;
if (GDK_WINDOW_DESTROYED (window) ||
!WINDOW_IS_TOPLEVEL (window))
return;
@@ -2402,6 +2423,7 @@ gdk_quartz_window_set_type_hint (GdkWindow *window,
[impl->toplevel setHasShadow: window_type_hint_to_shadow (hint)];
[impl->toplevel setLevel: window_type_hint_to_level (hint)];
[impl->toplevel setHidesOnDeactivate: window_type_hint_to_hides_on_deactivate (hint)];
}
static GdkWindowTypeHint
@@ -2583,7 +2605,7 @@ gdk_quartz_window_set_decorations (GdkWindow *window,
{
NSRect rect;
old_view = [impl->toplevel contentView];
old_view = [[impl->toplevel contentView] retain];
rect = [impl->toplevel frame];
@@ -2602,33 +2624,67 @@ gdk_quartz_window_set_decorations (GdkWindow *window,
rect = [NSWindow contentRectForFrameRect:rect styleMask:old_mask];
}
/* Note, before OS 10.6 there doesn't seem to be a way to change this without
* recreating the toplevel. There might be bad side-effects of doing
* that, but it seems alright.
/* Note, before OS 10.6 there doesn't seem to be a way to change this
* without recreating the toplevel. From 10.6 onward, a simple call to
* setStyleMask takes care of most of this, except for ensuring that the
* title is set.
*/
if ([impl->toplevel respondsToSelector:@selector(setStyleMask:)])
{
NSString *title = [impl->toplevel title];
[(id<CanSetStyleMask>)impl->toplevel setStyleMask:new_mask];
/* It appears that unsetting and then resetting NSTitledWindowMask
* does not reset the title in the title bar as might be expected.
*
* In theory we only need to set this if new_mask includes
* NSTitledWindowMask. This behaved extremely oddly when
* conditionalized upon that and since it has no side effects (i.e.
* if NSTitledWindowMask is not requested, the title will not be
* displayed) just do it unconditionally. We also must null check
* 'title' before setting it to avoid crashing.
*/
if (title)
[impl->toplevel setTitle:title];
}
else
{
[impl->toplevel release];
NSString *title = [impl->toplevel title];
NSColor *bg = [impl->toplevel backgroundColor];
NSScreen *screen = [impl->toplevel screen];
/* Make sure the old window is closed, recall that releasedWhenClosed
* is set on GdkQuartzWindows.
*/
[impl->toplevel close];
impl->toplevel = [[GdkQuartzNSWindow alloc] initWithContentRect:rect
styleMask:new_mask
backing:NSBackingStoreBuffered
defer:NO];
defer:NO
screen:screen];
[impl->toplevel setHasShadow: window_type_hint_to_shadow (impl->type_hint)];
[impl->toplevel setLevel: window_type_hint_to_level (impl->type_hint)];
if (title)
[impl->toplevel setTitle:title];
[impl->toplevel setBackgroundColor:bg];
[impl->toplevel setHidesOnDeactivate: window_type_hint_to_hides_on_deactivate (impl->type_hint)];
[impl->toplevel setContentView:old_view];
}
[impl->toplevel setFrame:rect display:YES];
if (new_mask == NSBorderlessWindowMask)
[impl->toplevel setContentSize:rect.size];
else
[impl->toplevel setFrame:rect display:YES];
/* Invalidate the window shadow for non-opaque views that have shadow
* enabled, to get the shadow shape updated.
*/
if (![old_view isOpaque] && [impl->toplevel hasShadow])
[(GdkQuartzView*)old_view setNeedsInvalidateShadow:YES];
[old_view release];
}
GDK_QUARTZ_RELEASE_POOL;
@@ -2817,6 +2873,7 @@ static void
gdk_quartz_window_fullscreen (GdkWindow *window)
{
FullscreenSavedGeometry *geometry;
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
NSRect frame;
if (GDK_WINDOW_DESTROYED (window) ||
@@ -2842,10 +2899,14 @@ gdk_quartz_window_fullscreen (GdkWindow *window)
gdk_window_set_decorations (window, 0);
frame = [[NSScreen mainScreen] frame];
frame = [[impl->toplevel screen] frame];
move_resize_window_internal (window,
0, 0,
frame.size.width, frame.size.height);
[impl->toplevel setContentSize:frame.size];
[impl->toplevel makeKeyAndOrderFront:impl->toplevel];
clear_toplevel_order ();
}
SetSystemUIMode (kUIModeAllHidden, kUIOptionAutoShowMenuBar);
@@ -2856,6 +2917,7 @@ gdk_quartz_window_fullscreen (GdkWindow *window)
static void
gdk_quartz_window_unfullscreen (GdkWindow *window)
{
GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
FullscreenSavedGeometry *geometry;
if (GDK_WINDOW_DESTROYED (window) ||
@@ -2877,6 +2939,9 @@ gdk_quartz_window_unfullscreen (GdkWindow *window)
g_object_set_data (G_OBJECT (window), FULLSCREEN_DATA, NULL);
[impl->toplevel makeKeyAndOrderFront:impl->toplevel];
clear_toplevel_order ();
gdk_synthesize_window_state (window, GDK_WINDOW_STATE_FULLSCREEN, 0);
}
}
+10 -14
View File
@@ -183,6 +183,7 @@ gdk_device_core_set_window_cursor (GdkDevice *device,
x, y);
wl_surface_attach (wd->pointer_surface, buffer, 0, 0);
wl_surface_damage (wd->pointer_surface, 0, 0, w, h);
wl_surface_commit(wd->pointer_surface);
g_object_unref (cursor);
}
@@ -1240,14 +1241,14 @@ static GdkModifierType
get_modifier (struct xkb_state *state)
{
GdkModifierType modifiers = 0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_SHIFT, XKB_STATE_EFFECTIVE) > 0)?GDK_SHIFT_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_CAPS, XKB_STATE_EFFECTIVE) > 0)?GDK_LOCK_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_CTRL, XKB_STATE_EFFECTIVE) > 0)?GDK_CONTROL_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_ALT, XKB_STATE_EFFECTIVE) > 0)?GDK_MOD1_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, "Mod2", XKB_STATE_EFFECTIVE) > 0)?GDK_MOD2_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, "Mod3", XKB_STATE_EFFECTIVE) > 0)?GDK_MOD3_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_LOGO, XKB_STATE_EFFECTIVE) > 0)?GDK_MOD4_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, "Mod5", XKB_STATE_EFFECTIVE) > 0)?GDK_MOD5_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_SHIFT, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_SHIFT_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_CAPS, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_LOCK_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_CTRL, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_CONTROL_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_ALT, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD1_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, "Mod2", XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD2_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, "Mod3", XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD3_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, XKB_MOD_NAME_LOGO, XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD4_MASK:0;
modifiers |= (xkb_state_mod_name_is_active (state, "Mod5", XKB_STATE_MODS_EFFECTIVE) > 0)?GDK_MOD5_MASK:0;
return modifiers;
}
@@ -1324,16 +1325,11 @@ deliver_key_event(GdkWaylandDevice *device,
struct xkb_state *xkb_state;
GdkKeymap *keymap;
xkb_keysym_t sym;
uint32_t num_syms;
const xkb_keysym_t *syms;
keymap = device->keymap;
xkb_state = _gdk_wayland_keymap_get_xkb_state (keymap);
num_syms = xkb_key_get_syms (xkb_state, key, &syms);
sym = XKB_KEY_NoSymbol;
if (num_syms == 1)
sym = syms[0];
sym = xkb_state_key_get_one_sym (xkb_state, key);
device->time = time;
device->modifiers = get_modifier (xkb_state);
+21 -16
View File
@@ -96,7 +96,8 @@ static void
output_handle_geometry(void *data,
struct wl_output *wl_output,
int x, int y, int physical_width, int physical_height,
int subpixel, const char *make, const char *model)
int subpixel, const char *make, const char *model,
int32_t transform)
{
/*
g_signal_emit_by_name (screen, "monitors-changed");
@@ -119,8 +120,8 @@ static const struct wl_output_listener output_listener = {
};
static void
gdk_display_handle_global(struct wl_display *display, uint32_t id,
const char *interface, uint32_t version, void *data)
gdk_registry_handle_global(void *data, struct wl_registry *registry, uint32_t id,
const char *interface, uint32_t version)
{
GdkWaylandDisplay *display_wayland = data;
GdkDisplay *gdk_display = GDK_DISPLAY_OBJECT (data);
@@ -128,27 +129,29 @@ gdk_display_handle_global(struct wl_display *display, uint32_t id,
if (strcmp(interface, "wl_compositor") == 0) {
display_wayland->compositor =
wl_display_bind(display, id, &wl_compositor_interface);
wl_registry_bind(display_wayland->wl_registry, id, &wl_compositor_interface, 1);
} else if (strcmp(interface, "wl_shm") == 0) {
display_wayland->shm = wl_display_bind(display, id, &wl_shm_interface);
display_wayland->shm =
wl_registry_bind(display_wayland->wl_registry, id, &wl_shm_interface, 1);
/* SHM interface is prerequisite */
_gdk_wayland_display_load_cursor_theme(display_wayland);
} else if (strcmp(interface, "wl_shell") == 0) {
display_wayland->shell = wl_display_bind(display, id, &wl_shell_interface);
display_wayland->shell =
wl_registry_bind(display_wayland->wl_registry, id, &wl_shell_interface, 1);
} else if (strcmp(interface, "wl_output") == 0) {
display_wayland->output =
wl_display_bind(display, id, &wl_output_interface);
wl_registry_bind(display_wayland->wl_registry, id, &wl_output_interface, 1);
wl_output_add_listener(display_wayland->output,
&output_listener, display_wayland);
} else if (strcmp(interface, "wl_seat") == 0) {
seat = wl_display_bind (display, id, &wl_seat_interface);
seat = wl_registry_bind(display_wayland->wl_registry, id, &wl_seat_interface, 1);
_gdk_wayland_device_manager_add_device (gdk_display->device_manager,
seat);
} else if (strcmp(interface, "wl_data_device_manager") == 0) {
display_wayland->data_device_manager =
wl_display_bind(display, id,
&wl_data_device_manager_interface);
wl_registry_bind(display_wayland->wl_registry, id,
&wl_data_device_manager_interface, 1);
}
}
@@ -210,6 +213,10 @@ gdk_display_init_egl(GdkDisplay *display)
}
#endif
static const struct wl_registry_listener registry_listener = {
gdk_registry_handle_global
};
GdkDisplay *
_gdk_wayland_display_open (const gchar *display_name)
{
@@ -231,14 +238,13 @@ _gdk_wayland_display_open (const gchar *display_name)
display->device_manager = _gdk_wayland_device_manager_new (display);
/* Set up listener so we'll catch all events. */
wl_display_add_global_listener(display_wayland->wl_display,
gdk_display_handle_global, display_wayland);
display_wayland->wl_registry = wl_display_get_registry(display_wayland->wl_display);
wl_registry_add_listener(display_wayland->wl_registry, &registry_listener, display_wayland);
#ifdef GDK_WAYLAND_USE_EGL
gdk_display_init_egl(display);
#else
wl_display_iterate(wl_display, WL_DISPLAY_READABLE);
wl_display_roundtrip(wl_display);
wl_display_dispatch(display_wayland->wl_display);
#endif
display_wayland->event_source =
@@ -351,8 +357,7 @@ gdk_wayland_display_flush (GdkDisplay *display)
g_return_if_fail (GDK_IS_DISPLAY (display));
if (!display->closed)
_gdk_wayland_display_flush (display,
GDK_WAYLAND_DISPLAY (display)->event_source);
wl_display_flush(GDK_WAYLAND_DISPLAY (display)->wl_display);;
}
static gboolean
+1
View File
@@ -76,6 +76,7 @@ struct _GdkWaylandDisplay
/* Wayland fields below */
struct wl_display *wl_display;
struct wl_registry *wl_registry;
struct wl_compositor *compositor;
struct wl_shm *shm;
struct wl_shell *shell;
+1 -1
View File
@@ -136,7 +136,7 @@ gdk_wayland_display_manager_lookup_keyval (GdkDisplayManager *manager,
{
g_return_val_if_fail (keyval_name != NULL, 0);
return xkb_keysym_from_name(keyval_name);
return xkb_keysym_from_name (keyval_name, 0);
}
static gchar *
+4 -27
View File
@@ -44,8 +44,7 @@ gdk_event_source_prepare(GSource *base, gint *timeout)
if (_gdk_event_queue_find_first (source->display) != NULL)
return TRUE;
while (source->mask & WL_DISPLAY_WRITABLE)
wl_display_iterate(display->wl_display, WL_DISPLAY_WRITABLE);
wl_display_flush(display->wl_display);
return FALSE;
}
@@ -97,16 +96,6 @@ static GSourceFuncs wl_glib_source_funcs = {
gdk_event_source_finalize
};
static int
gdk_event_source_update(uint32_t mask, void *data)
{
GdkWaylandEventSource *source = data;
source->mask = mask;
return 0;
}
void
_gdk_wayland_display_deliver_event (GdkDisplay *display, GdkEvent *event)
{
@@ -134,8 +123,7 @@ _gdk_wayland_display_event_source_new (GdkDisplay *display)
display_wayland = GDK_WAYLAND_DISPLAY (display);
wl_source->display = display;
wl_source->pfd.fd = wl_display_get_fd(display_wayland->wl_display,
gdk_event_source_update, source);
wl_source->pfd.fd = wl_display_get_fd(display_wayland->wl_display);
wl_source->pfd.events = G_IO_IN | G_IO_ERR;
g_source_add_poll(source, &wl_source->pfd);
@@ -148,16 +136,6 @@ _gdk_wayland_display_event_source_new (GdkDisplay *display)
return source;
}
void
_gdk_wayland_display_flush (GdkDisplay *display, GSource *source)
{
GdkWaylandEventSource *wayland_source = (GdkWaylandEventSource *) source;
while (wayland_source->mask & WL_DISPLAY_WRITABLE)
wl_display_iterate(GDK_WAYLAND_DISPLAY (display)->wl_display,
WL_DISPLAY_WRITABLE);
}
void
_gdk_wayland_display_queue_events (GdkDisplay *display)
{
@@ -166,10 +144,9 @@ _gdk_wayland_display_queue_events (GdkDisplay *display)
display_wayland = GDK_WAYLAND_DISPLAY (display);
source = (GdkWaylandEventSource *) display_wayland->event_source;
if (source->pfd.revents)
{
wl_display_iterate(display_wayland->wl_display, WL_DISPLAY_READABLE);
source->pfd.revents = 0;
wl_display_dispatch(display_wayland->wl_display);
source->pfd.revents = 0;
}
}
+2 -2
View File
@@ -221,7 +221,7 @@ _gdk_wayland_keymap_new ()
names.layout = "us";
names.variant = "";
names.options = "";
keymap->xkb_keymap = xkb_map_new_from_names(context, &names, XKB_MAP_COMPILE_PLACEHOLDER);
keymap->xkb_keymap = xkb_keymap_new_from_names (context, &names, 0);
keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
xkb_context_unref (context);
@@ -246,7 +246,7 @@ _gdk_wayland_keymap_new_from_fd (uint32_t format,
return NULL;
}
keymap->xkb_keymap = xkb_map_new_from_string (context, map_str, format, XKB_MAP_COMPILE_PLACEHOLDER);
keymap->xkb_keymap = xkb_keymap_new_from_string (context, map_str, format, 0);
munmap (map_str, size);
close (fd);
keymap->xkb_state = xkb_state_new (keymap->xkb_keymap);
-1
View File
@@ -137,7 +137,6 @@ GdkKeymap *_gdk_wayland_device_get_keymap (GdkDevice *device);
void _gdk_wayland_display_deliver_event (GdkDisplay *display, GdkEvent *event);
GSource *_gdk_wayland_display_event_source_new (GdkDisplay *display);
void _gdk_wayland_display_queue_events (GdkDisplay *display);
void _gdk_wayland_display_flush (GdkDisplay *display, GSource *source);
GdkAppLaunchContext *_gdk_wayland_display_get_app_launch_context (GdkDisplay *display);
+1
View File
@@ -1563,6 +1563,7 @@ gdk_wayland_window_process_updates_recurse (GdkWindow *window,
cairo_region_get_rectangle (region, i, &rect);
wl_surface_damage (impl->surface,
rect.x, rect.y, rect.width, rect.height);
wl_surface_commit(impl->surface);
}
_gdk_window_process_updates_recurse (window, region);
+4 -6
View File
@@ -147,7 +147,7 @@ _gdk_win32_window_change_property (GdkWindow *window,
{
HGLOBAL hdata;
gint i, size;
guchar *ucptr, *buf = NULL;
guchar *ucptr;
wchar_t *wcptr, *p;
glong wclen;
@@ -206,7 +206,7 @@ _gdk_win32_window_change_property (GdkWindow *window,
WIN32_API_FAILED ("GlobalAlloc");
if (!CloseClipboard ())
WIN32_API_FAILED ("CloseClipboard");
g_free (buf);
g_free (wcptr);
return;
}
@@ -399,7 +399,6 @@ _gdk_win32_screen_get_setting (GdkScreen *screen,
g_value_set_boolean (value, TRUE);
return TRUE;
}
#if 0
/*
* With 'MS Sans Serif' as windows menu font (default on win98se) you'll get a
* bunch of :
@@ -416,7 +415,7 @@ _gdk_win32_screen_get_setting (GdkScreen *screen,
/* Pango finally uses GetDeviceCaps to scale, we use simple
* approximation here.
*/
int nHeight = (0 > ncm.lfMenuFont.lfHeight ? -3*ncm.lfMenuFont.lfHeight/4 : 10);
int nHeight = (0 > ncm.lfMenuFont.lfHeight ? - 3 * ncm.lfMenuFont.lfHeight / 4 : 10);
if (OUT_STRING_PRECIS == ncm.lfMenuFont.lfOutPrecision)
GDK_NOTE(MISC, g_print("gdk_screen_get_setting(%s) : ignoring bitmap font '%s'\n",
name, ncm.lfMenuFont.lfFaceName));
@@ -424,7 +423,7 @@ _gdk_win32_screen_get_setting (GdkScreen *screen,
/* Avoid issues like those described in bug #135098 */
g_utf8_validate (ncm.lfMenuFont.lfFaceName, -1, NULL))
{
char* s = g_strdup_printf ("%s %d", ncm.lfMenuFont.lfFaceName, nHeight);
char *s = g_strdup_printf ("%s %d", ncm.lfMenuFont.lfFaceName, nHeight);
GDK_NOTE(MISC, g_print("gdk_screen_get_setting(%s) : %s\n", name, s));
g_value_set_string (value, s);
@@ -433,7 +432,6 @@ _gdk_win32_screen_get_setting (GdkScreen *screen,
}
}
}
#endif
return FALSE;
}
+3 -2
View File
@@ -27,6 +27,7 @@
#include "config.h"
#include <stdlib.h>
#include <windows.h>
#include "gdk.h"
#include "gdkwindowimpl.h"
@@ -1533,7 +1534,7 @@ gdk_win32_window_set_urgency_hint (GdkWindow *window,
gboolean urgent)
{
FLASHWINFO flashwinfo;
typedef BOOL (*PFN_FlashWindowEx) (FLASHWINFO*);
typedef BOOL (WINAPI *PFN_FlashWindowEx) (FLASHWINFO*);
PFN_FlashWindowEx flashWindowEx = NULL;
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -3264,7 +3265,7 @@ gdk_win32_window_set_opacity (GdkWindow *window,
gdouble opacity)
{
LONG exstyle;
typedef BOOL (*PFN_SetLayeredWindowAttributes) (HWND, COLORREF, BYTE, DWORD);
typedef BOOL (WINAPI *PFN_SetLayeredWindowAttributes) (HWND, COLORREF, BYTE, DWORD);
PFN_SetLayeredWindowAttributes setLayeredWindowAttributes = NULL;
g_return_if_fail (GDK_IS_WINDOW (window));
+9 -1
View File
@@ -280,6 +280,10 @@ get_current_desktop (GdkScreen *screen)
unsigned char *data_return = NULL;
int workspace = 0;
if (!gdk_x11_screen_supports_net_wm_hint (screen,
gdk_atom_intern_static_string ("_NET_CURRENT_DESKTOP")))
return workspace;
display = GDK_DISPLAY_XDISPLAY (gdk_screen_get_display (screen));
win = XRootWindow (display, GDK_SCREEN_XNUMBER (screen));
@@ -294,7 +298,7 @@ get_current_desktop (GdkScreen *screen)
&data_return);
if (type == XA_CARDINAL && format == 32 && n_items > 0)
workspace = (int) data_return[0];
workspace = ((long *) data_return)[0];
if (data_return)
XFree (data_return);
@@ -330,6 +334,10 @@ get_work_area (GdkScreen *screen,
area->width = gdk_screen_get_width (screen);
area->height = gdk_screen_get_height (screen);
if (!gdk_x11_screen_supports_net_wm_hint (screen,
gdk_atom_intern_static_string ("_NET_WORKAREA")))
return;
if (workarea == None)
return;
+9 -3
View File
@@ -1738,7 +1738,9 @@ static void
move_to_current_desktop (GdkWindow *window)
{
if (gdk_x11_screen_supports_net_wm_hint (GDK_WINDOW_SCREEN (window),
gdk_atom_intern_static_string ("_NET_WM_DESKTOP")))
gdk_atom_intern_static_string ("_NET_WM_DESKTOP")) &&
gdk_x11_screen_supports_net_wm_hint (GDK_WINDOW_SCREEN (window),
gdk_atom_intern_static_string ("_NET_CURRENT_DESKTOP")))
{
Atom type;
gint format;
@@ -2717,7 +2719,9 @@ gdk_x11_window_get_frame_extents (GdkWindow *window,
xwindow = GDK_WINDOW_XID (window);
/* first try: use _NET_FRAME_EXTENTS */
if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), xwindow,
if (gdk_x11_screen_supports_net_wm_hint (GDK_WINDOW_SCREEN (window),
gdk_atom_intern_static_string ("_NET_FRAME_EXTENTS")) &&
XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), xwindow,
gdk_x11_get_xatom_by_name_for_display (display,
"_NET_FRAME_EXTENTS"),
0, G_MAXLONG, False, XA_CARDINAL, &type_return,
@@ -2764,7 +2768,9 @@ gdk_x11_window_get_frame_extents (GdkWindow *window,
/* use NETWM_VIRTUAL_ROOTS if available */
root = GDK_WINDOW_XROOTWIN (window);
if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), root,
if (gdk_x11_screen_supports_net_wm_hint (GDK_WINDOW_SCREEN (window),
gdk_atom_intern_static_string ("_NET_VIRTUAL_ROOTS")) &&
XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display), root,
gdk_x11_get_xatom_by_name_for_display (display,
"_NET_VIRTUAL_ROOTS"),
0, G_MAXLONG, False, XA_WINDOW, &type_return,
+3
View File
@@ -287,10 +287,13 @@ gtk_cell_accessible_action_do_action (AtkAction *action,
{
case 0:
_gtk_cell_accessible_parent_expand_collapse (parent, cell);
break;
case 1:
_gtk_cell_accessible_parent_edit (parent, cell);
break;
case 2:
_gtk_cell_accessible_parent_activate (parent, cell);
break;
default:
return FALSE;
}
+1 -1
View File
@@ -708,7 +708,7 @@ gtk_icon_view_item_accessible_is_showing (GtkIconViewItemAccessible *item)
if (icon_view->priv->hadjustment)
visible_rect.x += gtk_adjustment_get_value (icon_view->priv->hadjustment);
visible_rect.y = 0;
if (icon_view->priv->hadjustment)
if (icon_view->priv->vadjustment)
visible_rect.y += gtk_adjustment_get_value (icon_view->priv->vadjustment);
visible_rect.width = allocation.width;
visible_rect.height = allocation.height;
-1
View File
@@ -552,7 +552,6 @@ gtk_text_cell_accessible_get_character_extents (AtkText *text,
gail_renderer = GTK_RENDERER_CELL_ACCESSIBLE (text);
g_object_get (gail_renderer, "renderer", &gtk_renderer, NULL);
g_object_get (gtk_renderer, "text", &renderer_text, NULL);
g_object_unref (gtk_renderer);
if (renderer_text == NULL)
{
g_object_unref (gtk_renderer);
+1
View File
@@ -499,6 +499,7 @@ gtk_widget_accessible_notify_gtk (GObject *obj,
gtk_widget_accessible_update_tooltip (GTK_WIDGET_ACCESSIBLE (atk_obj),
widget);
}
else
return;
atk_object_notify_state_change (atk_obj, state, value);
+12
View File
@@ -715,5 +715,17 @@ GtkCalendar.button:hover {
}
.spinner:active {
background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent));
animation: spinner 1s infinite linear;
}
+12 -3
View File
@@ -28,7 +28,9 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gio/gio.h>
#ifdef G_OS_UNIX
#include <gio/gdesktopappinfo.h>
#endif
#include <gtk.h>
static gchar **args = NULL;
@@ -45,8 +47,10 @@ main (int argc, char *argv[])
GOptionContext *context = NULL;
gchar *summary;
gchar *app_name;
#ifdef G_OS_UNIX
gchar *desktop_file_name;
GDesktopAppInfo *info;
#endif
GAppInfo *info = NULL;
GAppLaunchContext *launch_context;
GList *l;
GFile *f;
@@ -107,12 +111,17 @@ main (int argc, char *argv[])
gtk_init (&argc, &argv);
app_name = *args;
#ifdef G_OS_UNIX
if (g_str_has_suffix (app_name, ".desktop"))
desktop_file_name = g_strdup (app_name);
else
desktop_file_name = g_strconcat (app_name, ".desktop", NULL);
info = g_desktop_app_info_new (desktop_file_name);
info = G_APP_INFO (g_desktop_app_info_new (desktop_file_name));
g_free (desktop_file_name);
#else
#warning Please add support for creating AppInfo from id for your OS
g_printerr (_("Creating AppInfo from id not supported on non unix operating systems"));
#endif
args++;
if (!info)
@@ -133,7 +142,7 @@ main (int argc, char *argv[])
}
launch_context = (GAppLaunchContext*) gdk_display_get_app_launch_context (gdk_display_get_default ());
if (!g_app_info_launch (G_APP_INFO (info), l, launch_context, &error))
if (!g_app_info_launch (info, l, launch_context, &error))
{
/* Translators: the first %s is the program name, the second one */
/* is the error message. */
+382 -24
View File
@@ -432,19 +432,26 @@ GtkButton.check:active:prelight {
.scale {
background-color: transparent;
-GtkScale-value-spacing: 0;
-GtkScale-slider-length: 9;
-GtkScale-slider-length: 12;
-GtkRange-slider-width: 20;
-GtkRange-trough-border: 0;
}
.scale.trough {
margin: 8px 0;
border-style: none;
border-width: 0;
background-image: -gtk-win32-theme-part(trackbar, 1 1, margins (2 0 2 0));
background-image: -gtk-win32-theme-part(trackbar, 1 1);
}
.scale.trough.vertical {
background-image: -gtk-win32-theme-part(trackbar, 1 1, margins (0 2 0 2));
margin: 0 8px;
background-image: -gtk-win32-theme-part(trackbar, 1 1);
}
.scale.mark {
/* defines the color of the actuall marks on the scale */
color: shade(@bg_color, 0.6);
}
.scale.slider {
@@ -493,89 +500,89 @@ GtkButton.check:active:prelight {
}
.scale.slider.scale-has-marks-below {
background-image: -gtk-win32-theme-part(trackbar, 4 1);
background-image: -gtk-win32-theme-part(trackbar, 4 1, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-below:prelight {
background-image: -gtk-win32-theme-part(trackbar, 4 2);
background-image: -gtk-win32-theme-part(trackbar, 4 2, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-below:active,
.scale.slider.scale-has-marks-below:prelight:active {
background-image: -gtk-win32-theme-part(trackbar, 4 3);
background-image: -gtk-win32-theme-part(trackbar, 4 3, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-below:focus {
background-image: -gtk-win32-theme-part(trackbar, 4 4);
background-image: -gtk-win32-theme-part(trackbar, 4 4, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-below:insensitive {
background-image: -gtk-win32-theme-part(trackbar, 4 5);
background-image: -gtk-win32-theme-part(trackbar, 4 5, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-below.vertical {
background-image: -gtk-win32-theme-part(trackbar, 8 1);
background-image: -gtk-win32-theme-part(trackbar, 8 1, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-below.vertical:prelight {
background-image: -gtk-win32-theme-part(trackbar, 8 2);
background-image: -gtk-win32-theme-part(trackbar, 8 2, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-below.vertical:active,
.scale.slider.scale-has-marks-below.vertical:prelight:active {
background-image: -gtk-win32-theme-part(trackbar, 8 3);
background-image: -gtk-win32-theme-part(trackbar, 8 3, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-below.vertical:focus {
background-image: -gtk-win32-theme-part(trackbar, 8 4);
background-image: -gtk-win32-theme-part(trackbar, 8 4, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-below.vertical:insensitive {
background-image: -gtk-win32-theme-part(trackbar, 8 5);
background-image: -gtk-win32-theme-part(trackbar, 8 5, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-above {
background-image: -gtk-win32-theme-part(trackbar, 5 1);
background-image: -gtk-win32-theme-part(trackbar, 5 1, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-above:prelight {
background-image: -gtk-win32-theme-part(trackbar, 5 2);
background-image: -gtk-win32-theme-part(trackbar, 5 2, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-above:active,
.scale.slider.scale-has-marks-above:prelight:active {
background-image: -gtk-win32-theme-part(trackbar, 5 3);
background-image: -gtk-win32-theme-part(trackbar, 5 3, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-above:focus {
background-image: -gtk-win32-theme-part(trackbar, 5 4);
background-image: -gtk-win32-theme-part(trackbar, 5 4, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-above:insensitive {
background-image: -gtk-win32-theme-part(trackbar, 5 5);
background-image: -gtk-win32-theme-part(trackbar, 5 5, margins(0 -2 0 0));
}
.scale.slider.scale-has-marks-above.vertical {
background-image: -gtk-win32-theme-part(trackbar, 7 1);
background-image: -gtk-win32-theme-part(trackbar, 7 1, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-above.vertical:prelight {
background-image: -gtk-win32-theme-part(trackbar, 7 2);
background-image: -gtk-win32-theme-part(trackbar, 7 2, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-above.vertical:active,
.scale.slider.scale-has-marks-above.vertical:prelight:active {
background-image: -gtk-win32-theme-part(trackbar, 7 3);
background-image: -gtk-win32-theme-part(trackbar, 7 3, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-above.vertical:focus {
background-image: -gtk-win32-theme-part(trackbar, 7 4);
background-image: -gtk-win32-theme-part(trackbar, 7 4, margins(0 0 -2 0));
}
.scale.slider.scale-has-marks-above.vertical:insensitive {
background-image: -gtk-win32-theme-part(trackbar, 7 5);
background-image: -gtk-win32-theme-part(trackbar, 7 5, margins(0 0 -2 0));
}
/* Progress bars */
@@ -791,7 +798,7 @@ GtkSwitch.trough:active {
/* Assistant */
GtkAssistant .sidebar .highlight {
background-color: blue;
background-color: gray;
font: bold;
}
@@ -834,3 +841,354 @@ GtkStatusbar > GtkFrame {
background-image: -gtk-win32-theme-part(status, 3 1);
}
*/
@keyframes spinner {
0% { background-image: none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)); }
0% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)); }
8% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none; }
8% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)); }
16% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)); }
16% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)); }
25% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)); }
25% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)); }
33% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)); }
33% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)); }
41% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)); }
41% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)); }
50% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)); }
50% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)); }
58% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)); }
58% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)); }
66% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)); }
66% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)); }
75% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)); }
75% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)); }
83% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)); }
83% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)); }
91% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)); }
91% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)); }
100% { background-image: none,
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)); }
100% { background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)); }
}
.spinner {
background-color: transparent;
background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent));
background-position: 25.00% 6.70%, 6.70% 25.00%, 0.00% 50.00%, 6.70% 75.00%, 25.00% 93.30%, 50.00% 100.00%, 75.00% 93.30%, 93.30% 75.00%, 100.00% 50.00%, 93.30% 25.00%, 75.00% 6.70%, 50.00% 0.00%;
background-size: 20% 20%;
background-repeat: no-repeat;
transition: background-image 500ms ease-out;
}
.spinner:active {
background-image: -gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.916667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.75)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.666667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.583333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.5)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.416667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.333333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.25)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.166667)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(alpha(currentColor, 0.0833333)), to(transparent)),
-gtk-gradient(radial, center center, 0, center center, 0.5, to(currentColor), to(transparent));
animation: spinner 1s infinite linear;
}
+3 -1
View File
@@ -2395,6 +2395,8 @@ create_credits_page (GtkAboutDialog *about)
gtk_widget_set_valign (grid, GTK_ALIGN_START);
gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), grid);
row = 0;
if (priv->authors != NULL)
add_credits_section (about, GTK_GRID (grid), &row, _("Created by"), priv->authors);
@@ -2664,7 +2666,7 @@ gtk_about_dialog_get_license_type (GtkAboutDialog *about)
* gtk_about_dialog_add_credit_section:
* @about: A #GtkAboutDialog
* @section_name: The name of the section
* @people: The people who belong to that section
* @people: (array zero-terminated=1): The people who belong to that section
*
* Creates a new section in the Credits page.
*
+1 -1
View File
@@ -189,7 +189,7 @@ gtk_action_helper_action_removed (GtkActionHelper *helper)
if (helper->active)
{
helper->enabled = FALSE;
helper->active = FALSE;
gtk_action_helper_report_change (helper, PROP_ACTIVE);
}
+3 -3
View File
@@ -159,9 +159,9 @@ static inline gboolean
_gtk_bitmask_intersects (const GtkBitmask *mask,
const GtkBitmask *other)
{
if (!_gtk_bitmask_is_allocated (mask) ||
!_gtk_bitmask_is_allocated (other))
if (_gtk_bitmask_is_allocated (mask) ||
_gtk_bitmask_is_allocated (other))
return _gtk_allocated_bitmask_intersects (mask, other);
else
return _gtk_bitmask_to_bits (mask) & _gtk_bitmask_to_bits (other);
return _gtk_bitmask_to_bits (mask) & _gtk_bitmask_to_bits (other) ? TRUE : FALSE;
}
+137 -37
View File
@@ -38,6 +38,14 @@ enum {
LAST_SIGNAL
};
@interface GtkClipboardOwner : NSObject {
GtkClipboard *clipboard;
@public
gboolean setting_same_owner;
}
@end
typedef struct _GtkClipboardClass GtkClipboardClass;
struct _GtkClipboard
@@ -45,6 +53,8 @@ struct _GtkClipboard
GObject parent_instance;
NSPasteboard *pasteboard;
GtkClipboardOwner *owner;
NSInteger change_count;
GdkAtom selection;
@@ -76,16 +86,15 @@ struct _GtkClipboardClass
GdkEventOwnerChange *event);
};
@interface GtkClipboardOwner : NSObject {
GtkClipboard *clipboard;
static void gtk_clipboard_class_init (GtkClipboardClass *class);
static void gtk_clipboard_finalize (GObject *object);
static void gtk_clipboard_owner_change (GtkClipboard *clipboard,
GdkEventOwnerChange *event);
GtkClipboardGetFunc get_func;
GtkClipboardClearFunc clear_func;
gpointer user_data;
}
@end
static void clipboard_unset (GtkClipboard *clipboard);
static GtkClipboard *clipboard_peek (GdkDisplay *display,
GdkAtom selection,
gboolean only_if_exists);
@implementation GtkClipboardOwner
-(void)pasteboard:(NSPasteboard *)sender provideDataForType:(NSString *)type
@@ -117,12 +126,16 @@ struct _GtkClipboardClass
}
}
/* pasteboardChangedOwner is not called immediately, and it's not called
* reliably. It is somehow documented in the apple api docs, but the docs
* suck and don't really give clear instructions. Therefore we track
* changeCount in several places below and clear the clipboard if it
* changed.
*/
- (void)pasteboardChangedOwner:(NSPasteboard *)sender
{
if (clear_func)
clear_func (clipboard, user_data);
[self release];
if (! setting_same_owner)
clipboard_unset (clipboard);
}
- (id)initWithClipboard:(GtkClipboard *)aClipboard
@@ -132,6 +145,7 @@ struct _GtkClipboardClass
if (self)
{
clipboard = aClipboard;
setting_same_owner = FALSE;
}
return self;
@@ -139,15 +153,6 @@ struct _GtkClipboardClass
@end
static void gtk_clipboard_class_init (GtkClipboardClass *class);
static void gtk_clipboard_finalize (GObject *object);
static void gtk_clipboard_owner_change (GtkClipboard *clipboard,
GdkEventOwnerChange *event);
static void clipboard_unset (GtkClipboard *clipboard);
static GtkClipboard *clipboard_peek (GdkDisplay *display,
GdkAtom selection,
gboolean only_if_exists);
static const gchar clipboards_owned_key[] = "gtk-clipboards-owned";
static GQuark clipboards_owned_key_id = 0;
@@ -331,10 +336,6 @@ gtk_clipboard_set_contents (GtkClipboard *clipboard,
NSSet *types;
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
owner = [[GtkClipboardOwner alloc] initWithClipboard:clipboard];
if (!(clipboard->have_owner && have_owner) ||
clipboard->user_data != user_data)
{
@@ -349,17 +350,44 @@ gtk_clipboard_set_contents (GtkClipboard *clipboard,
clipboard->user_data != user_data)
{
(*clear_func) (clipboard, user_data);
[pool release];
return FALSE;
}
else
{
[pool release];
return TRUE;
}
}
}
pool = [[NSAutoreleasePool alloc] init];
types = _gtk_quartz_target_entries_to_pasteboard_types (targets, n_targets);
/* call declareTypes before setting the clipboard members because
* declareTypes might clear the clipboard
*/
if (user_data && user_data == clipboard->user_data)
{
owner = [clipboard->owner retain];
owner->setting_same_owner = TRUE;
clipboard->change_count = [clipboard->pasteboard declareTypes: [types allObjects]
owner: owner];
owner->setting_same_owner = FALSE;
}
else
{
owner = [[GtkClipboardOwner alloc] initWithClipboard:clipboard];
clipboard->change_count = [clipboard->pasteboard declareTypes: [types allObjects]
owner: owner];
}
[owner release];
[types release];
[pool release];
clipboard->owner = owner;
clipboard->user_data = user_data;
clipboard->have_owner = have_owner;
if (have_owner)
@@ -371,12 +399,6 @@ gtk_clipboard_set_contents (GtkClipboard *clipboard,
gtk_target_list_unref (clipboard->target_list);
clipboard->target_list = gtk_target_list_new (targets, n_targets);
types = _gtk_quartz_target_entries_to_pasteboard_types (targets, n_targets);
[clipboard->pasteboard declareTypes:[types allObjects] owner:owner];
[types release];
[pool release];
return TRUE;
}
@@ -420,6 +442,12 @@ gtk_clipboard_get_owner (GtkClipboard *clipboard)
{
g_return_val_if_fail (clipboard != NULL, NULL);
if (clipboard->change_count < [clipboard->pasteboard changeCount])
{
clipboard_unset (clipboard);
clipboard->change_count = [clipboard->pasteboard changeCount];
}
if (clipboard->have_owner)
return clipboard->user_data;
else
@@ -448,7 +476,8 @@ clipboard_unset (GtkClipboard *clipboard)
clipboard->n_storable_targets = -1;
g_free (clipboard->storable_targets);
clipboard->storable_targets = NULL;
clipboard->owner = NULL;
clipboard->get_func = NULL;
clipboard->clear_func = NULL;
clipboard->user_data = NULL;
@@ -473,6 +502,8 @@ clipboard_unset (GtkClipboard *clipboard)
void
gtk_clipboard_clear (GtkClipboard *clipboard)
{
clipboard_unset (clipboard);
[clipboard->pasteboard declareTypes:nil owner:nil];
}
@@ -656,6 +687,12 @@ gtk_clipboard_wait_for_contents (GtkClipboard *clipboard,
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
GtkSelectionData *selection_data = NULL;
if (clipboard->change_count < [clipboard->pasteboard changeCount])
{
clipboard_unset (clipboard);
clipboard->change_count = [clipboard->pasteboard changeCount];
}
if (target == gdk_atom_intern_static_string ("TARGETS"))
{
NSArray *types = [clipboard->pasteboard types];
@@ -1002,11 +1039,74 @@ gtk_clipboard_set_can_store (GtkClipboard *clipboard,
void
gtk_clipboard_store (GtkClipboard *clipboard)
{
/* FIXME: Implement */
int i;
int n_targets = 0;
GtkTargetEntry *targets;
g_return_if_fail (GTK_IS_CLIPBOARD (clipboard));
if (!clipboard->target_list || !clipboard->get_func)
return;
/* We simply store all targets into the OS X clipboard. We should be
* using the functions gdk_display_supports_clipboard_persistence() and
* gdk_display_store_clipboard(), but since for OS X the clipboard support
* was implemented in GTK+ and not through GdkSelections, we do it this
* way. Doing this properly could be worthwhile to implement in the future.
*/
targets = gtk_target_table_new_from_list (clipboard->target_list,
&n_targets);
for (i = 0; i < n_targets; i++)
{
GtkSelectionData selection_data;
/* in each loop iteration, check if the content is still
* there, because calling get_func() can do anything to
* the clipboard
*/
if (!clipboard->target_list || !clipboard->get_func)
break;
memset (&selection_data, 0, sizeof (GtkSelectionData));
selection_data.selection = clipboard->selection;
selection_data.target = gdk_atom_intern_static_string (targets[i].target);
selection_data.display = gdk_display_get_default ();
selection_data.length = -1;
clipboard->get_func (clipboard, &selection_data,
targets[i].info, clipboard->user_data);
if (selection_data.length >= 0)
_gtk_quartz_set_selection_data_for_pasteboard (clipboard->pasteboard,
&selection_data);
g_free (selection_data.data);
}
if (targets)
gtk_target_table_free (targets, n_targets);
}
void
_gtk_clipboard_store_all (void)
{
/* FIXME: Implement */
GtkClipboard *clipboard;
GSList *displays, *list;
displays = gdk_display_manager_list_displays (gdk_display_manager_get ());
list = displays;
while (list)
{
GdkDisplay *display = list->data;
clipboard = clipboard_peek (display, GDK_SELECTION_CLIPBOARD, TRUE);
if (clipboard)
gtk_clipboard_store (clipboard);
list = list->next;
}
}
+33 -26
View File
@@ -584,36 +584,42 @@ dialog_response (GtkDialog *dialog,
}
}
/* Create the dialog and connects its buttons */
static void
ensure_dialog (GtkColorButton *button)
{
GtkWidget *parent, *dialog;
if (button->priv->cs_dialog != NULL)
return;
parent = gtk_widget_get_toplevel (GTK_WIDGET (button));
button->priv->cs_dialog = dialog = gtk_color_chooser_dialog_new (button->priv->title, NULL);
if (gtk_widget_is_toplevel (parent) && GTK_IS_WINDOW (parent))
{
if (GTK_WINDOW (parent) != gtk_window_get_transient_for (GTK_WINDOW (dialog)))
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent));
gtk_window_set_modal (GTK_WINDOW (dialog),
gtk_window_get_modal (GTK_WINDOW (parent)));
}
g_signal_connect (dialog, "response",
G_CALLBACK (dialog_response), button);
g_signal_connect (dialog, "destroy",
G_CALLBACK (dialog_destroy), button);
}
static void
gtk_color_button_clicked (GtkButton *b)
{
GtkColorButton *button = GTK_COLOR_BUTTON (b);
GtkWidget *dialog;
/* if dialog already exists, make sure it's shown and raised */
if (!button->priv->cs_dialog)
{
/* Create the dialog and connects its buttons */
GtkWidget *parent;
parent = gtk_widget_get_toplevel (GTK_WIDGET (button));
button->priv->cs_dialog = dialog = gtk_color_chooser_dialog_new (button->priv->title, NULL);
if (gtk_widget_is_toplevel (parent) && GTK_IS_WINDOW (parent))
{
if (GTK_WINDOW (parent) != gtk_window_get_transient_for (GTK_WINDOW (dialog)))
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (parent));
gtk_window_set_modal (GTK_WINDOW (dialog),
gtk_window_get_modal (GTK_WINDOW (parent)));
}
g_signal_connect (dialog, "response",
G_CALLBACK (dialog_response), button);
g_signal_connect (dialog, "destroy",
G_CALLBACK (dialog_destroy), button);
}
ensure_dialog (button);
gtk_color_chooser_set_use_alpha (GTK_COLOR_CHOOSER (button->priv->cs_dialog),
button->priv->use_alpha);
@@ -962,8 +968,9 @@ gtk_color_button_add_palette (GtkColorChooser *chooser,
{
GtkColorButton *button = GTK_COLOR_BUTTON (chooser);
if (button->priv->cs_dialog)
gtk_color_chooser_add_palette (GTK_COLOR_CHOOSER (button->priv->cs_dialog),
ensure_dialog (button);
gtk_color_chooser_add_palette (GTK_COLOR_CHOOSER (button->priv->cs_dialog),
orientation, colors_per_line, n_colors, colors);
}
+1 -1
View File
@@ -74,7 +74,7 @@ gtk_css_value_bg_size_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
{
return value1->cover == value2->cover &&
value2->contain == value2->contain &&
value1->contain == value2->contain &&
(value1->x == value2->x ||
(value1->x != NULL && value2->x != NULL &&
_gtk_css_value_equal (value1->x, value2->x))) &&
+2
View File
@@ -499,6 +499,8 @@ gtk_css_computed_values_create_css_animations (GtkCssComputedValues *values,
_gtk_css_play_state_value_get (_gtk_css_array_value_get_nth (play_states, i)),
_gtk_css_fill_mode_value_get (_gtk_css_array_value_get_nth (fill_modes, i)),
_gtk_css_number_value_get (_gtk_css_array_value_get_nth (iteration_counts, i), 100));
_gtk_css_keyframes_unref (keyframes);
}
values->animations = g_slist_prepend (values->animations, animation);
}
+4 -4
View File
@@ -79,7 +79,7 @@ fade_pattern (cairo_pattern_t *pattern,
cairo_pattern_add_color_stop_rgba (result, o, r, g, b, a * opacity);
}
return pattern;
return result;
}
static cairo_pattern_t *
@@ -102,7 +102,7 @@ transition_pattern (cairo_pattern_t *start,
{
case CAIRO_PATTERN_TYPE_LINEAR:
cairo_pattern_get_linear_points (start, &sx0, &sy0, &sx1, &sy1);
cairo_pattern_get_linear_points (start, &ex0, &ey0, &ex1, &ey1);
cairo_pattern_get_linear_points (end, &ex0, &ey0, &ex1, &ey1);
result = cairo_pattern_create_linear ((1 - progress) * sx0 + progress * ex0,
(1 - progress) * sx1 + progress * ex1,
(1 - progress) * sy0 + progress * ey0,
@@ -110,7 +110,7 @@ transition_pattern (cairo_pattern_t *start,
break;
case CAIRO_PATTERN_TYPE_RADIAL:
cairo_pattern_get_radial_circles (start, &sx0, &sy0, &sr0, &sx1, &sy1, &sr1);
cairo_pattern_get_radial_circles (start, &ex0, &ey0, &er0, &ex1, &ey1, &er1);
cairo_pattern_get_radial_circles (end, &ex0, &ey0, &er0, &ex1, &ey1, &er1);
result = cairo_pattern_create_radial ((1 - progress) * sx0 + progress * ex0,
(1 - progress) * sy0 + progress * ey0,
(1 - progress) * sr0 + progress * er0,
@@ -128,7 +128,7 @@ transition_pattern (cairo_pattern_t *start,
double so, sr, sg, sb, sa, eo, er, eg, eb, ea;
cairo_pattern_get_color_stop_rgba (start, i, &so, &sr, &sg, &sb, &sa);
cairo_pattern_get_color_stop_rgba (start, i, &eo, &er, &eg, &eb, &ea);
cairo_pattern_get_color_stop_rgba (end, i, &eo, &er, &eg, &eb, &ea);
cairo_pattern_add_color_stop_rgba (result,
(1 - progress) * so + progress * eo,
+13 -2
View File
@@ -36,6 +36,8 @@ struct _GtkCssKeyframes {
GtkCssValue **values; /* 2D array: n_keyframes * n_properties of (value or NULL) for all the keyframes */
};
#define KEYFRAMES_VALUE(keyframes, k, p) ((keyframes)->values[(k) * (keyframes)->n_properties + (p)])
GtkCssKeyframes *
_gtk_css_keyframes_ref (GtkCssKeyframes *keyframes)
{
@@ -49,6 +51,8 @@ _gtk_css_keyframes_ref (GtkCssKeyframes *keyframes)
void
_gtk_css_keyframes_unref (GtkCssKeyframes *keyframes)
{
guint k, p;
g_return_if_fail (keyframes != NULL);
keyframes->ref_count--;
@@ -57,13 +61,20 @@ _gtk_css_keyframes_unref (GtkCssKeyframes *keyframes)
g_free (keyframes->keyframe_progress);
g_free (keyframes->property_ids);
for (k = 0; k < keyframes->n_keyframes; k++)
{
for (p = 0; p < keyframes->n_properties; p++)
{
_gtk_css_value_unref (KEYFRAMES_VALUE (keyframes, k, p));
KEYFRAMES_VALUE (keyframes, k, p) = NULL;
}
}
g_free (keyframes->values);
g_slice_free (GtkCssKeyframes, keyframes);
}
#define KEYFRAMES_VALUE(keyframes, k, p) ((keyframes)->values[(k) * (keyframes)->n_properties + (p)])
static guint
gtk_css_keyframes_add_keyframe (GtkCssKeyframes *keyframes,
double progress)
-19
View File
@@ -24,17 +24,6 @@
#include "gtkcssstylepropertyprivate.h"
#include "gtkstylepropertiesprivate.h"
typedef struct {
GtkCssSection *section;
GtkCssValue *value;
GtkCssValue *computed;
} GtkCssLookupValue;
struct _GtkCssLookup {
GtkBitmask *missing;
GtkCssLookupValue values[1];
};
GtkCssLookup *
_gtk_css_lookup_new (const GtkBitmask *relevant)
{
@@ -65,14 +54,6 @@ _gtk_css_lookup_free (GtkCssLookup *lookup)
g_free (lookup);
}
const GtkBitmask *
_gtk_css_lookup_get_missing (const GtkCssLookup *lookup)
{
g_return_val_if_fail (lookup != NULL, NULL);
return lookup->missing;
}
gboolean
_gtk_css_lookup_is_missing (const GtkCssLookup *lookup,
guint id)
+19 -1
View File
@@ -28,10 +28,21 @@ G_BEGIN_DECLS
typedef struct _GtkCssLookup GtkCssLookup;
typedef struct {
GtkCssSection *section;
GtkCssValue *value;
GtkCssValue *computed;
} GtkCssLookupValue;
struct _GtkCssLookup {
GtkBitmask *missing;
GtkCssLookupValue values[1];
};
GtkCssLookup * _gtk_css_lookup_new (const GtkBitmask *relevant);
void _gtk_css_lookup_free (GtkCssLookup *lookup);
const GtkBitmask * _gtk_css_lookup_get_missing (const GtkCssLookup *lookup);
static inline const GtkBitmask *_gtk_css_lookup_get_missing (const GtkCssLookup *lookup);
gboolean _gtk_css_lookup_is_missing (const GtkCssLookup *lookup,
guint id);
void _gtk_css_lookup_set (GtkCssLookup *lookup,
@@ -47,6 +58,13 @@ void _gtk_css_lookup_resolve (GtkCssLookup
GtkCssComputedValues *values,
GtkCssComputedValues *parent_values);
static inline const GtkBitmask *
_gtk_css_lookup_get_missing (const GtkCssLookup *lookup)
{
return lookup->missing;
}
G_END_DECLS
+16 -9
View File
@@ -1568,18 +1568,19 @@ gtk_css_style_provider_lookup (GtkStyleProviderPrivate *provider,
{
GtkCssProvider *css_provider;
GtkCssProviderPrivate *priv;
int i;
GtkCssRuleset *ruleset;
guint j;
css_provider = GTK_CSS_PROVIDER (provider);
priv = css_provider->priv;
for (i = priv->rulesets->len - 1; i >= 0; i--)
if (priv->rulesets->len == 0)
return;
for (ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, priv->rulesets->len - 1);
ruleset >= &g_array_index (priv->rulesets, GtkCssRuleset, 0);
ruleset--)
{
GtkCssRuleset *ruleset;
ruleset = &g_array_index (priv->rulesets, GtkCssRuleset, i);
if (ruleset->styles == NULL)
continue;
@@ -1603,6 +1604,9 @@ gtk_css_style_provider_lookup (GtkStyleProviderPrivate *provider,
ruleset->styles[j].section,
ruleset->styles[j].value);
}
if (_gtk_bitmask_is_empty (_gtk_css_lookup_get_missing (lookup)))
break;
}
}
@@ -1821,9 +1825,12 @@ gtk_css_provider_propagate_error (GtkCssProvider *provider,
return;
*propagate_to = g_error_copy (error);
s = _gtk_css_section_to_string (section);
g_prefix_error (propagate_to, "%s", s);
g_free (s);
if (section)
{
s = _gtk_css_section_to_string (section);
g_prefix_error (propagate_to, "%s", s);
g_free (s);
}
}
static gboolean
+32 -10
View File
@@ -98,42 +98,64 @@ gtk_css_value_shadows_transition (GtkCssValue *start,
guint property_id,
double progress)
{
GtkCssValue *result;
guint i;
guint i, len;
GtkCssValue **values;
/* catches the important case of 2 none values */
if (start == end)
return _gtk_css_value_ref (start);
if (start->len > end->len)
result = gtk_css_shadows_value_new (start->values, start->len);
len = start->len;
else
result = gtk_css_shadows_value_new (end->values, end->len);
len = end->len;
values = g_newa (GtkCssValue *, len);
for (i = 0; i < MIN (start->len, end->len); i++)
{
result->values[i] = _gtk_css_value_transition (start->values[i], end->values[i], property_id, progress);
values[i] = _gtk_css_value_transition (start->values[i], end->values[i], property_id, progress);
if (values[i] == NULL)
{
while (i--)
_gtk_css_value_unref (values[i]);
return NULL;
}
}
if (start->len > end->len)
{
for (; i < result->len; i++)
for (; i < len; i++)
{
GtkCssValue *fill = _gtk_css_shadow_value_new_for_transition (start->values[i]);
result->values[i] = _gtk_css_value_transition (start->values[i], fill, property_id, progress);
values[i] = _gtk_css_value_transition (start->values[i], fill, property_id, progress);
_gtk_css_value_unref (fill);
if (values[i] == NULL)
{
while (i--)
_gtk_css_value_unref (values[i]);
return NULL;
}
}
}
else
{
for (; i < result->len; i++)
for (; i < len; i++)
{
GtkCssValue *fill = _gtk_css_shadow_value_new_for_transition (end->values[i]);
result->values[i] = _gtk_css_value_transition (fill, end->values[i], property_id, progress);
values[i] = _gtk_css_value_transition (fill, end->values[i], property_id, progress);
_gtk_css_value_unref (fill);
if (values[i] == NULL)
{
while (i--)
_gtk_css_value_unref (values[i]);
return NULL;
}
}
}
return result;
return gtk_css_shadows_value_new (values, len);
}
static void
+3 -3
View File
@@ -565,8 +565,8 @@ parse_background (GtkCssShorthandProperty *shorthand,
{
g_ptr_array_set_free_func (arrays[i], (GDestroyNotify) _gtk_css_value_unref);
g_ptr_array_unref (arrays[i]);
return FALSE;
}
return FALSE;
}
for (i = 0; i < 6; i++)
@@ -668,8 +668,8 @@ parse_transition (GtkCssShorthandProperty *shorthand,
{
g_ptr_array_set_free_func (arrays[i], (GDestroyNotify) _gtk_css_value_unref);
g_ptr_array_unref (arrays[i]);
return FALSE;
}
return FALSE;
}
for (i = 0; i < 4; i++)
@@ -784,8 +784,8 @@ parse_animation (GtkCssShorthandProperty *shorthand,
{
g_ptr_array_set_free_func (arrays[i], (GDestroyNotify) _gtk_css_value_unref);
g_ptr_array_unref (arrays[i]);
return FALSE;
}
return FALSE;
}
for (i = 0; i < 6; i++)
+3 -2
View File
@@ -49,10 +49,11 @@ typedef enum { /*< skip >*/
GTK_CSS_CHANGE_PARENT_SIBLING_STATE = (1 << 15),
/* add more */
GTK_CSS_CHANGE_SOURCE = (1 << 16),
GTK_CSS_CHANGE_ANIMATE = (1 << 17)
GTK_CSS_CHANGE_ANIMATE = (1 << 17),
GTK_CSS_CHANGE_FORCE_INVALIDATE = (1 << 18)
} GtkCssChange;
#define GTK_CSS_CHANGE_ANY ((1 << 18) - 1)
#define GTK_CSS_CHANGE_ANY ((1 << 19) - 1)
#define GTK_CSS_CHANGE_ANY_SELF (GTK_CSS_CHANGE_CLASS | GTK_CSS_CHANGE_NAME | GTK_CSS_CHANGE_POSITION | GTK_CSS_CHANGE_STATE)
#define GTK_CSS_CHANGE_ANY_SIBLING (GTK_CSS_CHANGE_SIBLING_CLASS | GTK_CSS_CHANGE_SIBLING_NAME | \
GTK_CSS_CHANGE_SIBLING_POSITION | GTK_CSS_CHANGE_SIBLING_STATE)
+1 -2
View File
@@ -656,8 +656,7 @@ gtk_entry_completion_set_property (GObject *object,
break;
case PROP_TEXT_COLUMN:
gtk_entry_completion_set_text_column (completion,
g_value_get_int (value));
priv->text_column = g_value_get_int (value);
break;
case PROP_INLINE_COMPLETION:
+4 -2
View File
@@ -1251,6 +1251,7 @@ get_next_site (GtkExpander *expander,
case GTK_DIR_RIGHT:
return FOCUS_WIDGET;
}
break;
case FOCUS_WIDGET:
switch (direction)
{
@@ -1264,8 +1265,8 @@ get_next_site (GtkExpander *expander,
return FOCUS_LABEL;
case GTK_DIR_RIGHT:
return ltr ? FOCUS_LABEL : FOCUS_NONE;
break;
}
break;
case FOCUS_LABEL:
switch (direction)
{
@@ -1279,8 +1280,8 @@ get_next_site (GtkExpander *expander,
return FOCUS_CHILD;
case GTK_DIR_RIGHT:
return ltr ? FOCUS_CHILD : FOCUS_WIDGET;
break;
}
break;
case FOCUS_CHILD:
switch (direction)
{
@@ -1293,6 +1294,7 @@ get_next_site (GtkExpander *expander,
case GTK_DIR_RIGHT:
return FOCUS_NONE;
}
break;
}
g_assert_not_reached ();
+3 -2
View File
@@ -1032,8 +1032,9 @@ gtk_file_chooser_get_create_folders (GtkFileChooser *chooser)
* @chooser: a #GtkFileChooser
*
* Gets the filename for the currently selected file in
* the file selector. If multiple files are selected,
* one of the filenames will be returned at random.
* the file selector. The filename is returned as an absolute path. If
* multiple files are selected, one of the filenames will be returned at
* random.
*
* If the file chooser is in folder mode, this function returns the selected
* folder.
+4 -1
View File
@@ -6798,7 +6798,7 @@ file_system_model_got_thumbnail (GObject *object, GAsyncResult *res, gpointer da
copy_attribute (info, queried, G_FILE_ATTRIBUTE_THUMBNAILING_FAILED);
copy_attribute (info, queried, G_FILE_ATTRIBUTE_STANDARD_ICON);
_gtk_file_system_model_update_file (model, file, info, FALSE);
_gtk_file_system_model_update_file (model, file, info);
g_object_unref (info);
@@ -7978,6 +7978,9 @@ add_shortcut_get_info_cb (GCancellable *cancellable,
shortcuts_insert_file (data->impl, pos, SHORTCUT_TYPE_FILE, NULL, data->file, NULL, FALSE, SHORTCUTS_SHORTCUTS);
/* need to call shortcuts_add_bookmarks to flush out any duplicates bug #577806 */
shortcuts_add_bookmarks (data->impl);
out:
g_object_unref (data->impl);
g_object_unref (data->file);
+6 -2
View File
@@ -548,8 +548,12 @@ finished_loading_cb (GtkFileSystemModel *model,
completion = gtk_entry_get_completion (GTK_ENTRY (chooser_entry));
update_inline_completion (chooser_entry);
gtk_entry_completion_complete (completion);
gtk_entry_completion_insert_prefix (completion);
if (gtk_widget_has_focus (GTK_WIDGET (chooser_entry)))
{
gtk_entry_completion_complete (completion);
gtk_entry_completion_insert_prefix (completion);
}
}
static void
+94 -36
View File
@@ -42,6 +42,9 @@
* the special kind of usage for "search" and "recent-files", where the file chooser gives the model the
* files to be displayed.
*
* Internal data structure
* -----------------------
*
* Each file is kept in a FileModelNode structure. Each FileModelNode holds a GFile* and other data. All the
* node structures have the same size, determined at runtime, depending on the number of columns that were passed
* to _gtk_file_system_model_new() or _gtk_file_system_model_new_for_directory() (that is, the size of a node is
@@ -66,7 +69,14 @@
*
* Each FileModelNode has a node->visible field, which indicates whether the node is visible in the GtkTreeView.
* A node may be invisible if, for example, it corresponds to a hidden file and the file chooser is not showing
* hidden files.
* hidden files. Also, a file filter may be explicitly set onto the model, for example, to only show files that
* match "*.jpg". In this case, node->filtered_out says whether the node failed the filter. The ultimate
* decision on whether a node is visible or not in the treeview is distilled into the node->visible field.
* The reason for having a separate node->filtered_out field is so that the file chooser can query whether
* a (filtered-out) folder should be made sensitive in the GUI.
*
* Visible rows vs. possibly-invisible nodes
* -----------------------------------------
*
* Since not all nodes in the model->files array may be visible, we need a way to map visible row indexes from
* the treeview to array indexes in our array of files. And thus we introduce a bit of terminology:
@@ -95,6 +105,16 @@
*
* You never access a node->row directly. Instead, call node_get_tree_row(). That function will validate the nodes
* up to the sought one if the node is not valid yet, and it will return a proper 0-based row.
*
* Sorting
* -------
*
* The model implements the GtkTreeSortable interface. To avoid re-sorting
* every time a node gets added (which would lead to O(n^2) performance during
* the initial population of the model), the model can freeze itself (with
* freeze_updates()) during the intial population process. When the model is
* frozen, sorting will not happen. The model will sort itself when the freeze
* count goes back to zero, via corresponding calls to thaw_updates().
*/
/*** DEFINES ***/
@@ -184,6 +204,12 @@ struct _GtkFileSystemModelClass
void (*finished_loading) (GtkFileSystemModel *model, GError *error);
};
static void freeze_updates (GtkFileSystemModel *model);
static void thaw_updates (GtkFileSystemModel *model);
static guint node_get_for_file (GtkFileSystemModel *model,
GFile *file);
static void add_file (GtkFileSystemModel *model,
GFile *file,
GFileInfo *info);
@@ -263,13 +289,13 @@ node_invalidate_index (GtkFileSystemModel *model, guint id)
}
static GtkTreePath *
gtk_tree_path_new_from_node (GtkFileSystemModel *model, guint id)
tree_path_new_from_node (GtkFileSystemModel *model, guint id)
{
guint i = node_get_tree_row (model, id);
guint r = node_get_tree_row (model, id);
g_assert (i < model->files->len);
g_assert (r < model->files->len);
return gtk_tree_path_new_from_indices (i, -1);
return gtk_tree_path_new_from_indices (r, -1);
}
static void
@@ -278,7 +304,7 @@ emit_row_inserted_for_node (GtkFileSystemModel *model, guint id)
GtkTreePath *path;
GtkTreeIter iter;
path = gtk_tree_path_new_from_node (model, id);
path = tree_path_new_from_node (model, id);
ITER_INIT_FROM_INDEX (model, &iter, id);
gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter);
gtk_tree_path_free (path);
@@ -290,7 +316,7 @@ emit_row_changed_for_node (GtkFileSystemModel *model, guint id)
GtkTreePath *path;
GtkTreeIter iter;
path = gtk_tree_path_new_from_node (model, id);
path = tree_path_new_from_node (model, id);
ITER_INIT_FROM_INDEX (model, &iter, id);
gtk_tree_model_row_changed (GTK_TREE_MODEL (model), path, &iter);
gtk_tree_path_free (path);
@@ -570,7 +596,7 @@ gtk_file_system_model_get_path (GtkTreeModel *tree_model,
g_return_val_if_fail (ITER_IS_VALID (model, iter), NULL);
return gtk_tree_path_new_from_node (model, ITER_INDEX (iter));
return tree_path_new_from_node (model, ITER_INDEX (iter));
}
static void
@@ -1097,7 +1123,7 @@ thaw_func (gpointer data)
{
GtkFileSystemModel *model = data;
_gtk_file_system_model_thaw_updates (model);
thaw_updates (model);
model->dir_thaw_source = 0;
return FALSE;
@@ -1119,7 +1145,7 @@ gtk_file_system_model_got_files (GObject *object, GAsyncResult *res, gpointer da
{
if (model->dir_thaw_source == 0)
{
_gtk_file_system_model_freeze_updates (model);
freeze_updates (model);
model->dir_thaw_source = gdk_threads_add_timeout_full (IO_PRIORITY + 1,
50,
thaw_func,
@@ -1168,7 +1194,7 @@ gtk_file_system_model_got_files (GObject *object, GAsyncResult *res, gpointer da
{
g_source_remove (model->dir_thaw_source);
model->dir_thaw_source = 0;
_gtk_file_system_model_thaw_updates (model);
thaw_updates (model);
}
g_signal_emit (model, file_system_model_signals[FINISHED_LOADING], 0, error);
@@ -1189,13 +1215,19 @@ gtk_file_system_model_query_done (GObject * object,
GtkFileSystemModel *model = data; /* only a valid pointer if not cancelled */
GFile *file = G_FILE (object);
GFileInfo *info;
guint id;
info = g_file_query_info_finish (file, res, NULL);
if (info == NULL)
return;
gdk_threads_enter ();
_gtk_file_system_model_update_file (model, file, info, TRUE);
_gtk_file_system_model_update_file (model, file, info);
id = node_get_for_file (model, file);
gtk_file_system_model_sort_node (model, id);
gdk_threads_leave ();
}
@@ -1433,14 +1465,14 @@ gtk_file_system_model_refilter_all (GtkFileSystemModel *model)
return;
}
_gtk_file_system_model_freeze_updates (model);
freeze_updates (model);
/* start at index 1, don't change the editable */
for (i = 1; i < model->files->len; i++)
node_compute_visibility_and_filters (model, i);
model->filter_on_thaw = FALSE;
_gtk_file_system_model_thaw_updates (model);
thaw_updates (model);
}
/**
@@ -1775,6 +1807,33 @@ _gtk_file_system_model_get_iter_for_file (GtkFileSystemModel *model,
return TRUE;
}
/* When an element is added or removed to the model->files array, we need to
* update the model->file_lookup mappings of (node, index), as the indexes
* change. This function adds the specified increment to the index in that pair
* if the index is equal or after the specified id. We use this to slide the
* mappings up or down when a node is added or removed, respectively.
*/
static void
adjust_file_lookup (GtkFileSystemModel *model, guint id, int increment)
{
GHashTableIter iter;
gpointer key;
gpointer value;
g_hash_table_iter_init (&iter, model->file_lookup);
while (g_hash_table_iter_next (&iter, &key, &value))
{
guint index = GPOINTER_TO_UINT (value);
if (index >= id)
{
index += increment;
g_hash_table_iter_replace (&iter, GUINT_TO_POINTER (index));
}
}
}
/**
* add_file:
* @model: the model
@@ -1825,6 +1884,7 @@ remove_file (GtkFileSystemModel *model,
{
FileModelNode *node;
guint id;
guint row;
g_return_if_fail (GTK_IS_FILE_SYSTEM_MODEL (model));
g_return_if_fail (G_IS_FILE (file));
@@ -1834,17 +1894,22 @@ remove_file (GtkFileSystemModel *model,
return;
node = get_node (model, id);
node_set_visible_and_filtered_out (model, id, FALSE, FALSE);
row = node_get_tree_row (model, id);
node_invalidate_index (model, id);
g_hash_table_remove (model->file_lookup, file);
g_object_unref (node->file);
adjust_file_lookup (model, id, -1);
if (node->info)
g_object_unref (node->info);
g_array_remove_index (model->files, id);
g_hash_table_remove_all (model->file_lookup);
/* We don't need to resort, as removing a row doesn't change the sorting order */
/* We don't need to resort, as removing a row doesn't change the sorting order of the other rows */
emit_row_deleted_for_row (model, row);
}
/**
@@ -1852,7 +1917,6 @@ remove_file (GtkFileSystemModel *model,
* @model: the model
* @file: the file
* @info: the new file info
* @requires_resort: FIXME: get rid of this argument
*
* Tells the file system model that the file changed and that the
* new @info should be used for it now. If the file is not part of
@@ -1861,8 +1925,7 @@ remove_file (GtkFileSystemModel *model,
void
_gtk_file_system_model_update_file (GtkFileSystemModel *model,
GFile *file,
GFileInfo *info,
gboolean requires_resort)
GFileInfo *info)
{
FileModelNode *node;
guint i, id;
@@ -1894,9 +1957,6 @@ _gtk_file_system_model_update_file (GtkFileSystemModel *model,
if (node->visible)
emit_row_changed_for_node (model, id);
if (requires_resort)
gtk_file_system_model_sort_node (model, id);
}
/**
@@ -1967,17 +2027,16 @@ _gtk_file_system_model_remove_editable (GtkFileSystemModel *model)
}
/**
* _gtk_file_system_model_freeze_updates:
* freeze_updates:
* @model: a #GtkFileSystemModel
*
* Freezes most updates on the model, so that performing multiple
* operations on the files in the model do not cause any events.
* Use _gtk_file_system_model_thaw_updates() to resume proper
* operations. It is fine to call this function multiple times as
* long as freeze and thaw calls are balanced.
* Freezes most updates on the model, so that performing multiple operations on
* the files in the model do not cause any events. Use thaw_updates() to resume
* proper operations. It is fine to call this function multiple times as long as
* freeze and thaw calls are balanced.
**/
void
_gtk_file_system_model_freeze_updates (GtkFileSystemModel *model)
static void
freeze_updates (GtkFileSystemModel *model)
{
g_return_if_fail (GTK_IS_FILE_SYSTEM_MODEL (model));
@@ -1985,14 +2044,13 @@ _gtk_file_system_model_freeze_updates (GtkFileSystemModel *model)
}
/**
* _gtk_file_system_model_thaw_updates:
* thaw_updates:
* @model: a #GtkFileSystemModel
*
* Undoes the effect of a previous call to
* _gtk_file_system_model_freeze_updates()
* Undoes the effect of a previous call to freeze_updates()
**/
void
_gtk_file_system_model_thaw_updates (GtkFileSystemModel *model)
static void
thaw_updates (GtkFileSystemModel *model)
{
gboolean stuff_added;
+1 -4
View File
@@ -71,8 +71,7 @@ void _gtk_file_system_model_add_and_query_file (GtkFileSystemMode
const char *attributes);
void _gtk_file_system_model_update_file (GtkFileSystemModel *model,
GFile *file,
GFileInfo *info,
gboolean requires_resort);
GFileInfo *info);
void _gtk_file_system_model_set_show_hidden (GtkFileSystemModel *model,
gboolean show_hidden);
@@ -82,8 +81,6 @@ void _gtk_file_system_model_set_show_files (GtkFileSystemModel
gboolean show_files);
void _gtk_file_system_model_set_filter_folders (GtkFileSystemModel *model,
gboolean show_folders);
void _gtk_file_system_model_freeze_updates (GtkFileSystemModel *model);
void _gtk_file_system_model_thaw_updates (GtkFileSystemModel *model);
void _gtk_file_system_model_clear_cache (GtkFileSystemModel *model,
int column);
+2 -1
View File
@@ -327,6 +327,7 @@ _gtk_gradient_resolve_full (GtkGradient *gradient,
{
rgba = *_gtk_css_rgba_value_get_rgba (val);
*dependencies = _gtk_css_dependencies_union (*dependencies, stop_deps);
_gtk_css_value_unref (val);
}
else
{
@@ -467,7 +468,7 @@ gtk_gradient_fade (GtkGradient *gradient,
stop = &g_array_index (gradient->stops, ColorStop, i);
color = gtk_symbolic_color_new_alpha (stop->color, opacity);
gtk_gradient_add_color_stop (gradient, stop->offset, color);
gtk_gradient_add_color_stop (faded, stop->offset, color);
gtk_symbolic_color_unref (color);
}
+3 -1
View File
@@ -20,6 +20,7 @@
#include "config.h"
#include "gtkiconhelperprivate.h"
#include "string.h"
G_DEFINE_TYPE (GtkIconHelper, _gtk_icon_helper, G_TYPE_OBJECT)
@@ -466,7 +467,8 @@ _gtk_icon_helper_set_stock_id (GtkIconHelper *self,
{
_gtk_icon_helper_clear (self);
if (stock_id != NULL)
if (stock_id != NULL &&
g_strcmp0 (stock_id, "") != 0)
{
self->priv->storage_type = GTK_IMAGE_STOCK;
self->priv->stock_id = g_strdup (stock_id);
+21 -15
View File
@@ -194,7 +194,7 @@ struct _GtkIconThemePrivate
glong last_stat_time;
GList *dir_mtimes;
gulong reset_styles_idle;
gulong theme_changed_idle;
};
struct _GtkIconInfo
@@ -690,7 +690,7 @@ free_dir_mtime (IconThemeDirMtime *dir_mtime)
}
static gboolean
reset_styles_idle (gpointer user_data)
theme_changed_idle (gpointer user_data)
{
GtkIconTheme *icon_theme;
GtkIconThemePrivate *priv;
@@ -698,14 +698,27 @@ reset_styles_idle (gpointer user_data)
icon_theme = GTK_ICON_THEME (user_data);
priv = icon_theme->priv;
g_signal_emit (icon_theme, signal_changed, 0);
if (priv->screen && priv->is_screen_singleton)
gtk_style_context_reset_widgets (priv->screen);
priv->reset_styles_idle = 0;
priv->theme_changed_idle = 0;
return FALSE;
}
static void
queue_theme_changed (GtkIconTheme *icon_theme)
{
GtkIconThemePrivate *priv = icon_theme->priv;
if (!priv->theme_changed_idle)
priv->theme_changed_idle =
gdk_threads_add_idle_full (GTK_PRIORITY_RESIZE - 2,
theme_changed_idle, icon_theme, NULL);
}
static void
do_theme_change (GtkIconTheme *icon_theme)
{
@@ -717,12 +730,7 @@ do_theme_change (GtkIconTheme *icon_theme)
GTK_NOTE (ICONTHEME,
g_print ("change to icon theme \"%s\"\n", priv->current_theme));
blow_themes (icon_theme);
g_signal_emit (icon_theme, signal_changed, 0);
if (!priv->reset_styles_idle)
priv->reset_styles_idle =
gdk_threads_add_idle_full (GTK_PRIORITY_RESIZE - 2,
reset_styles_idle, icon_theme, NULL);
queue_theme_changed (icon_theme);
}
static void
@@ -754,10 +762,10 @@ gtk_icon_theme_finalize (GObject *object)
icon_theme = GTK_ICON_THEME (object);
priv = icon_theme->priv;
if (priv->reset_styles_idle)
if (priv->theme_changed_idle)
{
g_source_remove (priv->reset_styles_idle);
priv->reset_styles_idle = 0;
g_source_remove (priv->theme_changed_idle);
priv->theme_changed_idle = 0;
}
unset_screen (icon_theme);
@@ -1297,9 +1305,7 @@ ensure_valid_themes (GtkIconTheme *icon_theme)
load_themes (icon_theme);
if (was_valid)
{
g_signal_emit (icon_theme, signal_changed, 0);
}
queue_theme_changed (icon_theme);
}
priv->loading_themes = FALSE;
+38 -12
View File
@@ -371,28 +371,54 @@ check_quartz_special_cases (GtkIMContextSimple *context_simple,
gint n_compose)
{
GtkIMContextSimplePrivate *priv = context_simple->priv;
guint value = 0;
if (n_compose == 2 &&
priv->compose_buffer[1] == GDK_KEY_space)
if (n_compose == 2)
{
gunichar value = 0;
switch (priv->compose_buffer[0])
{
case GDK_KEY_dead_doubleacute:
value = '"'; break;
}
switch (priv->compose_buffer[1])
{
case GDK_KEY_dead_doubleacute:
case GDK_KEY_space:
value = GDK_KEY_quotedbl; break;
if (value > 0)
{
gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
priv->compose_buffer[0] = 0;
case 'a': value = GDK_KEY_adiaeresis; break;
case 'A': value = GDK_KEY_Adiaeresis; break;
case 'e': value = GDK_KEY_ediaeresis; break;
case 'E': value = GDK_KEY_Ediaeresis; break;
case 'i': value = GDK_KEY_idiaeresis; break;
case 'I': value = GDK_KEY_Idiaeresis; break;
case 'o': value = GDK_KEY_odiaeresis; break;
case 'O': value = GDK_KEY_Odiaeresis; break;
case 'u': value = GDK_KEY_udiaeresis; break;
case 'U': value = GDK_KEY_Udiaeresis; break;
case 'y': value = GDK_KEY_ydiaeresis; break;
case 'Y': value = GDK_KEY_Ydiaeresis; break;
}
break;
GTK_NOTE (MISC, g_print ("quartz: U+%04X\n", value));
return TRUE;
case GDK_KEY_dead_acute:
switch (priv->compose_buffer[1])
{
case 'c': value = GDK_KEY_ccedilla; break;
case 'C': value = GDK_KEY_Ccedilla; break;
}
break;
}
}
if (value > 0)
{
gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple),
gdk_keyval_to_unicode (value));
priv->compose_buffer[0] = 0;
GTK_NOTE (MISC, g_print ("quartz: U+%04X\n", value));
return TRUE;
}
return FALSE;
}
+1 -1
View File
@@ -3394,7 +3394,7 @@ gtk_label_ensure_layout (GtkLabel *label)
pango_attr_list_insert (attrs, attribute);
}
}
else if (priv->markup_attrs && priv->markup_attrs)
else if (priv->markup_attrs || priv->attrs)
attrs = pango_attr_list_new ();
else
attrs = NULL;
+6 -4
View File
@@ -2437,10 +2437,12 @@ list_store_start_element (GMarkupParseContext *context,
else if (strcmp (element_name, "row") == 0)
;
else if (strcmp (element_name, "column") == 0)
for (i = 0; names[i]; i++)
if (strcmp (names[i], "type") == 0)
data->column_type_names = g_slist_prepend (data->column_type_names,
g_strdup (values[i]));
{
for (i = 0; names[i]; i++)
if (strcmp (names[i], "type") == 0)
data->column_type_names = g_slist_prepend (data->column_type_names,
g_strdup (values[i]));
}
else if (strcmp (element_name, "columns") == 0)
;
else if (strcmp (element_name, "data") == 0)
+10 -2
View File
@@ -1558,7 +1558,7 @@ gtk_main_do_event (GdkEvent *event)
* This is the key to implementing modality.
*/
if (!grab_widget ||
(gtk_widget_is_sensitive (event_widget) &&
((gtk_widget_is_sensitive (event_widget) || event->type == GDK_SCROLL) &&
gtk_widget_is_ancestor (event_widget, grab_widget)))
grab_widget = event_widget;
@@ -2438,7 +2438,15 @@ propagate_event_down (GtkWidget *widget,
widget = (GtkWidget *)l->data;
if (!gtk_widget_is_sensitive (widget))
handled_event = TRUE;
{
/* stop propagating on SCROLL, but don't handle the event, so it
* can propagate up again and reach its handling widget
*/
if (event->type == GDK_SCROLL)
break;
else
handled_event = TRUE;
}
else
handled_event = _gtk_widget_captured_event (widget, event);
}
+21 -4
View File
@@ -806,6 +806,23 @@ gtk_menu_button_get_menu_model (GtkMenuButton *menu_button)
return menu_button->priv->model;
}
static void
set_align_widget_pointer (GtkMenuButton *menu_button,
GtkWidget *align_widget)
{
GtkMenuButtonPrivate *priv;
priv = menu_button->priv;
if (priv->align_widget)
g_object_remove_weak_pointer (G_OBJECT (priv->align_widget), (gpointer *) &priv->align_widget);
priv->align_widget = align_widget;
if (align_widget)
g_object_add_weak_pointer (G_OBJECT (priv->align_widget), (gpointer *) &priv->align_widget);
}
/**
* gtk_menu_button_set_align_widget:
* @menu_button: a #GtkMenuButton
@@ -832,10 +849,7 @@ gtk_menu_button_set_align_widget (GtkMenuButton *menu_button,
if (priv->align_widget == align_widget)
return;
priv->align_widget = align_widget;
if (priv->align_widget)
g_object_add_weak_pointer (G_OBJECT (priv->align_widget), (gpointer *) &priv->align_widget);
set_align_widget_pointer (menu_button, align_widget);
g_object_notify (G_OBJECT (menu_button), "align-widget");
}
@@ -926,8 +940,11 @@ gtk_menu_button_dispose (GObject *object)
menu_deactivate_cb,
object);
gtk_menu_detach (GTK_MENU (priv->popup));
priv->popup = NULL;
}
set_align_widget_pointer (GTK_MENU_BUTTON (object), NULL);
g_clear_object (&priv->model);
G_OBJECT_CLASS (gtk_menu_button_parent_class)->dispose (object);
+3 -3
View File
@@ -1107,7 +1107,7 @@ gtk_menu_shell_leave_notify (GtkWidget *widget,
GdkEventCrossing *event)
{
if (event->mode == GDK_CROSSING_GTK_GRAB ||
event->mode == GDK_CROSSING_GTK_GRAB ||
event->mode == GDK_CROSSING_GTK_UNGRAB ||
event->mode == GDK_CROSSING_STATE_CHANGED)
return TRUE;
@@ -1727,8 +1727,8 @@ gtk_real_menu_shell_cycle_focus (GtkMenuShell *menu_shell,
while (menu_shell && !GTK_IS_MENU_BAR (menu_shell))
{
if (priv->parent_menu_shell)
menu_shell = GTK_MENU_SHELL (priv->parent_menu_shell);
if (menu_shell->priv->parent_menu_shell)
menu_shell = GTK_MENU_SHELL (menu_shell->priv->parent_menu_shell);
else
menu_shell = NULL;
}
+2
View File
@@ -2495,6 +2495,7 @@ gtk_notebook_size_allocate (GtkWidget *widget,
{
case GTK_POS_TOP:
child_allocation.y += priv->cur_page->requisition.height;
/* fall thru */
case GTK_POS_BOTTOM:
child_allocation.height =
MAX (1, child_allocation.height -
@@ -2502,6 +2503,7 @@ gtk_notebook_size_allocate (GtkWidget *widget,
break;
case GTK_POS_LEFT:
child_allocation.x += priv->cur_page->requisition.width;
/* fall thru */
case GTK_POS_RIGHT:
child_allocation.width =
MAX (1, child_allocation.width -
+2 -2
View File
@@ -171,7 +171,7 @@ _gtk_rounded_box_grow (GtkRoundedBox *box,
box->box.width += left + right;
}
if (box->box.height + bottom + right < 0)
if (box->box.height + bottom + top < 0)
{
box->box.y -= top * box->box.height / (top + bottom);
box->box.height = 0;
@@ -284,7 +284,7 @@ _gtk_rounded_box_guess_length (const GtkRoundedBox *box,
GtkCssSide side)
{
double length;
GtkCssCorner before, after;
GtkCssSide before, after;
before = side;
after = (side + 1) % 4;
+17 -12
View File
@@ -221,6 +221,21 @@ gtk_scale_notify (GObject *object,
G_OBJECT_CLASS (gtk_scale_parent_class)->notify (object, pspec);
}
static void
gtk_scale_update_style (GtkScale *scale)
{
gint slider_length;
GtkRange *range;
range = GTK_RANGE (scale);
gtk_widget_style_get (GTK_WIDGET (scale),
"slider-length", &slider_length,
NULL);
gtk_range_set_min_slider_size (range, slider_length);
_gtk_scale_clear_layout (scale);
}
#define add_slider_binding(binding_set, keyval, mask, scroll) \
gtk_binding_entry_add_signal (binding_set, keyval, mask, \
@@ -492,6 +507,7 @@ gtk_scale_init (GtkScale *scale)
context = gtk_widget_get_style_context (GTK_WIDGET (scale));
gtk_style_context_add_class (context, GTK_STYLE_CLASS_SCALE);
gtk_scale_update_style (scale);
}
static void
@@ -1020,18 +1036,7 @@ gtk_scale_get_mark_label_size (GtkScale *scale,
static void
gtk_scale_style_updated (GtkWidget *widget)
{
gint slider_length;
GtkRange *range;
range = GTK_RANGE (widget);
gtk_widget_style_get (widget,
"slider-length", &slider_length,
NULL);
gtk_range_set_min_slider_size (range, slider_length);
_gtk_scale_clear_layout (GTK_SCALE (widget));
gtk_scale_update_style (GTK_SCALE (widget));
GTK_WIDGET_CLASS (gtk_scale_parent_class)->style_updated (widget);
}
+18 -11
View File
@@ -115,21 +115,13 @@ gtk_scrollbar_class_init (GtkScrollbarClass *class)
}
static void
gtk_scrollbar_init (GtkScrollbar *scrollbar)
gtk_scrollbar_update_style (GtkScrollbar *scrollbar)
{
GtkStyleContext *context;
context = gtk_widget_get_style_context (GTK_WIDGET (scrollbar));
gtk_style_context_add_class (context, GTK_STYLE_CLASS_SCROLLBAR);
}
static void
gtk_scrollbar_style_updated (GtkWidget *widget)
{
GtkRange *range = GTK_RANGE (widget);
gint slider_length;
gboolean fixed_size;
gboolean has_a, has_b, has_c, has_d;
GtkRange *range = GTK_RANGE (scrollbar);
GtkWidget *widget = GTK_WIDGET (scrollbar);
gtk_widget_style_get (widget,
"min-slider-length", &slider_length,
@@ -144,7 +136,22 @@ gtk_scrollbar_style_updated (GtkWidget *widget)
gtk_range_set_slider_size_fixed (range, fixed_size);
_gtk_range_set_steppers (range,
has_a, has_b, has_c, has_d);
}
static void
gtk_scrollbar_init (GtkScrollbar *scrollbar)
{
GtkStyleContext *context;
context = gtk_widget_get_style_context (GTK_WIDGET (scrollbar));
gtk_style_context_add_class (context, GTK_STYLE_CLASS_SCROLLBAR);
gtk_scrollbar_update_style (scrollbar);
}
static void
gtk_scrollbar_style_updated (GtkWidget *widget)
{
gtk_scrollbar_update_style (GTK_SCROLLBAR (widget));
GTK_WIDGET_CLASS (gtk_scrollbar_parent_class)->style_updated (widget);
}
+1 -38
View File
@@ -274,9 +274,6 @@ static void gtk_scrolled_window_realize (GtkWidget *wid
static void gtk_scrolled_window_unrealize (GtkWidget *widget);
static void gtk_scrolled_window_map (GtkWidget *widget);
static void gtk_scrolled_window_unmap (GtkWidget *widget);
static void gtk_scrolled_window_state_flags_changed (GtkWidget *widget,
GtkStateFlags previous_state);
static void gtk_scrolled_window_style_updated (GtkWidget *widget);
static void gtk_scrolled_window_grab_notify (GtkWidget *widget,
gboolean was_grabbed);
@@ -352,8 +349,6 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class)
widget_class->unrealize = gtk_scrolled_window_unrealize;
widget_class->map = gtk_scrolled_window_map;
widget_class->unmap = gtk_scrolled_window_unmap;
widget_class->state_flags_changed = gtk_scrolled_window_state_flags_changed;
widget_class->style_updated = gtk_scrolled_window_style_updated;
widget_class->grab_notify = gtk_scrolled_window_grab_notify;
container_class->add = gtk_scrolled_window_add;
@@ -3379,14 +3374,13 @@ gtk_scrolled_window_realize (GtkWidget *widget)
attributes.wclass = GDK_INPUT_OUTPUT;
attributes.visual = gtk_widget_get_visual (widget);
attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK |
GDK_BUTTON_MOTION_MASK | GDK_TOUCH_MASK;
GDK_BUTTON_MOTION_MASK | GDK_TOUCH_MASK | GDK_EXPOSURE_MASK;
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
scrolled_window->priv->overshoot_window =
gdk_window_new (gtk_widget_get_parent_window (widget),
&attributes, attributes_mask);
gdk_window_set_user_data (scrolled_window->priv->overshoot_window, widget);
child_widget = gtk_bin_get_child (GTK_BIN (widget));
@@ -3432,37 +3426,6 @@ gtk_scrolled_window_unmap (GtkWidget *widget)
GTK_WIDGET_CLASS (gtk_scrolled_window_parent_class)->unmap (widget);
}
static void
_gtk_scrolled_window_update_background (GtkScrolledWindow *scrolled_window)
{
GtkWidget *widget = GTK_WIDGET (scrolled_window);
if (gtk_widget_get_realized (widget))
{
GtkStyleContext *context;
context = gtk_widget_get_style_context (widget);
gtk_style_context_set_background (context, scrolled_window->priv->overshoot_window);
}
}
static void
gtk_scrolled_window_state_flags_changed (GtkWidget *widget,
GtkStateFlags previous_state)
{
_gtk_scrolled_window_update_background (GTK_SCROLLED_WINDOW (widget));
gtk_widget_queue_draw (widget);
}
static void
gtk_scrolled_window_style_updated (GtkWidget *widget)
{
GTK_WIDGET_CLASS (gtk_scrolled_window_parent_class)->style_updated (widget);
_gtk_scrolled_window_update_background (GTK_SCROLLED_WINDOW (widget));
gtk_widget_queue_draw (widget);
}
static void
gtk_scrolled_window_grab_notify (GtkWidget *widget,
gboolean was_grabbed)
+3
View File
@@ -1848,6 +1848,9 @@ gtk_settings_notify (GObject *object,
if (settings_update_fontconfig (settings))
gtk_style_context_reset_widgets (priv->screen);
break;
case PROP_ENABLE_ANIMATIONS:
gtk_style_context_reset_widgets (priv->screen);
break;
case PROP_CURSOR_THEME_NAME:
case PROP_CURSOR_THEME_SIZE:
settings_update_cursor_theme (settings);
+7 -5
View File
@@ -746,6 +746,11 @@ compute_dimension (GtkWidget *widget,
min_dimension = *minimum;
nat_dimension = *natural;
}
else if (!gtk_widget_get_mapped (tmp_widget) && priv->ignore_hidden)
{
min_dimension = 0;
nat_dimension = 0;
}
else
{
if (mode == GTK_SIZE_GROUP_HORIZONTAL)
@@ -754,11 +759,8 @@ compute_dimension (GtkWidget *widget,
gtk_widget_get_preferred_height (tmp_widget, &min_dimension, &nat_dimension);
}
if (gtk_widget_get_mapped (tmp_widget) || !priv->ignore_hidden)
{
min_result = MAX (min_result, min_dimension);
nat_result = MAX (nat_result, nat_dimension);
}
min_result = MAX (min_result, min_dimension);
nat_result = MAX (nat_result, nat_dimension);
tmp_list = tmp_list->next;
}
+6 -1
View File
@@ -1048,7 +1048,12 @@ gtk_spin_button_realize (GtkWidget *widget)
return_val = FALSE;
g_signal_emit (spin_button, spinbutton_signals[OUTPUT], 0, &return_val);
if (return_val == FALSE)
/* If output wasn't processed explicitly by the method connected to the
* 'output' signal; and if we don't have any explicit 'text' set initially,
* fallback to the default output. */
if (!return_val &&
(spin_button->priv->numeric || gtk_entry_get_text (GTK_ENTRY (spin_button)) == NULL))
gtk_spin_button_default_output (spin_button);
gtk_widget_queue_resize (GTK_WIDGET (spin_button));
+19 -6
View File
@@ -2962,6 +2962,9 @@ gtk_style_context_update_cache (GtkStyleContext *context,
GHashTableIter iter;
gpointer key, value;
if (_gtk_bitmask_is_empty (parent_changes))
return;
priv = context->priv;
g_hash_table_iter_init (&iter, priv->style_data);
@@ -2978,7 +2981,8 @@ gtk_style_context_update_cache (GtkStyleContext *context,
if (_gtk_bitmask_get (changes, GTK_CSS_PROPERTY_FONT_SIZE))
changes = _gtk_bitmask_union (changes, data->store->depends_on_font_size);
build_properties (context, data->store, info, changes);
if (!_gtk_bitmask_is_empty (changes))
build_properties (context, data->store, info, changes);
}
}
@@ -3193,7 +3197,7 @@ _gtk_style_context_validate (GtkStyleContext *context,
_gtk_bitmask_free (animation_changes);
}
if (!_gtk_bitmask_is_empty (changes))
if (!_gtk_bitmask_is_empty (changes) || (change & GTK_CSS_CHANGE_FORCE_INVALIDATE))
gtk_style_context_do_invalidate (context);
change = _gtk_css_change_for_child (change);
@@ -3504,7 +3508,7 @@ gtk_style_context_get_font (GtkStyleContext *context,
{
GtkStyleContextPrivate *priv;
StyleData *data;
PangoFontDescription *description;
PangoFontDescription *description, *previous;
g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL);
@@ -3515,15 +3519,24 @@ gtk_style_context_get_font (GtkStyleContext *context,
/* Yuck, fonts are created on-demand but we don't return a ref.
* Do bad things to achieve this requirement */
description = g_object_get_data (G_OBJECT (data->store), "font-cache-for-get_font");
if (description == NULL)
gtk_style_context_get (context, state, "font", &description, NULL);
previous = g_object_get_data (G_OBJECT (data->store), "font-cache-for-get_font");
if (previous)
{
pango_font_description_merge (previous, description, TRUE);
pango_font_description_free (description);
description = previous;
}
else
{
gtk_style_context_get (context, state, "font", &description, NULL);
g_object_set_data_full (G_OBJECT (data->store),
"font-cache-for-get_font",
description,
(GDestroyNotify) pango_font_description_free);
}
return description;
}
+32 -34
View File
@@ -122,49 +122,43 @@ _gtk_text_handle_draw (GtkTextHandle *handle,
}
static void
_gtk_text_handle_update_shape (GtkTextHandle *handle,
GdkWindow *window)
_gtk_text_handle_update_shape (GtkTextHandle *handle,
GdkWindow *window,
GtkTextHandlePosition pos)
{
GtkTextHandlePrivate *priv;
cairo_surface_t *surface;
cairo_region_t *region;
cairo_t *cr;
priv = handle->priv;
surface =
gdk_window_create_similar_surface (window,
CAIRO_CONTENT_COLOR_ALPHA,
gdk_window_get_width (window),
gdk_window_get_height (window));
cr = cairo_create (surface);
_gtk_text_handle_draw (handle, cr, pos);
cairo_destroy (cr);
region = gdk_cairo_region_create_from_surface (surface);
if (gtk_widget_is_composited (priv->parent))
gdk_window_shape_combine_region (window, NULL, 0, 0);
else
{
GtkTextHandlePosition pos;
cairo_surface_t *surface;
cairo_region_t *region;
cairo_t *cr;
gdk_window_shape_combine_region (window, region, 0, 0);
if (window == priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window)
pos = GTK_TEXT_HANDLE_POSITION_SELECTION_START;
else if (window == priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window)
pos = GTK_TEXT_HANDLE_POSITION_SELECTION_END;
else
return;
gdk_window_input_shape_combine_region (window, region, 0, 0);
surface =
gdk_window_create_similar_surface (window,
CAIRO_CONTENT_COLOR_ALPHA,
gdk_window_get_width (window),
gdk_window_get_height (window));
cr = cairo_create (surface);
_gtk_text_handle_draw (handle, cr, pos);
cairo_destroy (cr);
region = gdk_cairo_region_create_from_surface (surface);
gdk_window_shape_combine_region (window, region, 0, 0);
cairo_surface_destroy (surface);
cairo_region_destroy (region);
}
cairo_surface_destroy (surface);
cairo_region_destroy (region);
}
static GdkWindow *
_gtk_text_handle_create_window (GtkTextHandle *handle)
_gtk_text_handle_create_window (GtkTextHandle *handle,
GtkTextHandlePosition pos)
{
GtkTextHandlePrivate *priv;
GdkRGBA bg = { 0, 0, 0, 0 };
@@ -200,7 +194,7 @@ _gtk_text_handle_create_window (GtkTextHandle *handle)
gdk_window_set_user_data (window, priv->parent);
gdk_window_set_background_rgba (window, &bg);
_gtk_text_handle_update_shape (handle, window);
_gtk_text_handle_update_shape (handle, window, pos);
return window;
}
@@ -307,7 +301,7 @@ _gtk_text_handle_update_window (GtkTextHandle *handle,
gdk_window_destroy (handle_window->window);
/* Create new window and apply old state */
handle_window->window = _gtk_text_handle_create_window (handle);
handle_window->window = _gtk_text_handle_create_window (handle, pos);
if (visible)
{
@@ -531,9 +525,9 @@ _gtk_text_handle_set_relative_to (GtkTextHandle *handle,
{
priv->relative_to = g_object_ref (window);
priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_START].window =
_gtk_text_handle_create_window (handle);
_gtk_text_handle_create_window (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_START);
priv->windows[GTK_TEXT_HANDLE_POSITION_SELECTION_END].window =
_gtk_text_handle_create_window (handle);
_gtk_text_handle_create_window (handle, GTK_TEXT_HANDLE_POSITION_SELECTION_END);
priv->realized = TRUE;
}
else
@@ -580,6 +574,10 @@ _gtk_text_handle_set_mode (GtkTextHandle *handle,
}
priv->mode = mode;
_gtk_text_handle_update_shape (handle,
priv->windows[GTK_TEXT_HANDLE_POSITION_CURSOR].window,
GTK_TEXT_HANDLE_POSITION_CURSOR);
}
GtkTextHandleMode
+1
View File
@@ -1674,6 +1674,7 @@ render_border (cairo_t *cr,
border->left - other_border.left);
render_frame_fill (cr, &other_box, &other_border, colors, dont_draw);
}
break;
case GTK_BORDER_STYLE_GROOVE:
case GTK_BORDER_STYLE_RIDGE:
{
+5 -6
View File
@@ -168,12 +168,12 @@
* /&ast; Fill the list store with data &ast;/
* populate_model (list_store);
*
* /&ast; Get the first iter in the list &ast;/
* valid = gtk_tree_model_get_iter_first (list_store, &amp;iter);
*
* while (valid)
* /&ast; Get the first iter in the list, check it is valid and walk
* &ast; through the list, reading each row. &ast;/
* for (valid = gtk_tree_model_get_iter_first (list_store, &amp;iter);
* valid;
* valid = gtk_tree_model_iter_next (list_store, &amp;iter))
* {
* /&ast; Walk through the list, reading each row &ast;/
* gchar *str_data;
* gint int_data;
*
@@ -190,7 +190,6 @@
* g_free (str_data);
*
* row_count++;
* valid = gtk_tree_model_iter_next (list_store, &amp;iter);
* }
* </programlisting>
* </example>
+6 -3
View File
@@ -190,9 +190,12 @@ gboolean gtk_tree_path_is_ancestor (GtkTreePath *path,
gboolean gtk_tree_path_is_descendant (GtkTreePath *path,
GtkTreePath *ancestor);
/* Row reference (an object that tracks model changes so it refers to the same
* row always; a path refers to a position, not a fixed row). You almost always
* want to call gtk_tree_row_reference_new.
/**
* GtkTreeRowReference:
*
* A GtkTreeRowReference tracks model changes so that it always refers to the
* same row (a #GtkTreePath refers to a position, not a fixed row). Create a
* new GtkTreeRowReference with gtk_tree_row_reference_new().
*/
GType gtk_tree_row_reference_get_type (void) G_GNUC_CONST;
+4 -7
View File
@@ -8133,9 +8133,6 @@ gtk_tree_view_set_fixed_height_mode (GtkTreeView *tree_view,
{
tree_view->priv->fixed_height_mode = 0;
tree_view->priv->fixed_height = -1;
/* force a revalidation */
install_presize_handler (tree_view);
}
else
{
@@ -8154,11 +8151,11 @@ gtk_tree_view_set_fixed_height_mode (GtkTreeView *tree_view,
tree_view->priv->fixed_height_mode = 1;
tree_view->priv->fixed_height = -1;
if (tree_view->priv->tree)
initialize_fixed_height_mode (tree_view);
}
/* force a revalidation */
install_presize_handler (tree_view);
g_object_notify (G_OBJECT (tree_view), "fixed-height-mode");
}
@@ -16422,7 +16419,7 @@ gtk_tree_view_set_tooltip_query_cb (GtkWidget *widget,
* for you. @column should be set to the column in @tree_view's model
* containing the tooltip texts, or -1 to disable this feature.
*
* When enabled, #GtkWidget::has-tooltip will be set to %TRUE and
* When enabled, #GtkWidget:has-tooltip will be set to %TRUE and
* @tree_view will connect a #GtkWidget::query-tooltip signal handler.
*
* Note that the signal handler sets the text with gtk_tooltip_set_markup(),
+7 -7
View File
@@ -22,6 +22,13 @@
* GTK+ at ftp://ftp.gtk.org/pub/gtk/.
*/
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk.h> can be included directly."
#endif
#ifndef __GTK_VERSION_H__
#define __GTK_VERSION_H__
/**
* SECTION:gtkfeatures
* @Short_description: Variables and functions to check the GTK+ version
@@ -32,13 +39,6 @@
* use the features described here.
*/
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk.h> can be included directly."
#endif
#ifndef __GTK_VERSION_H__
#define __GTK_VERSION_H__
/**
* GTK_MAJOR_VERSION:
*
+3 -1
View File
@@ -857,6 +857,8 @@ gtk_widget_draw_marshallerv (GClosure *closure,
param_types);
cairo_restore (cr);
va_end (args_copy);
}
static void
@@ -1960,7 +1962,7 @@ gtk_widget_class_init (GtkWidgetClass *klass)
* button press events for buttons 4 and 5 when the wheel is turned.
*
* To receive this signal, the #GdkWindow associated to the widget needs
* to enable the #GDK_BUTTON_PRESS_MASK mask.
* to enable the #GDK_SCROLL_MASK mask.
*
* This signal will be sent to the grab widget if there is one.
*
+47
View File
@@ -74,6 +74,9 @@ gtk_bitmask_new_parse (const char *string)
static const char *tests[] = {
"0",
"1",
"1000000000000000000000000000000",
"10000000000000000000000000000000",
"100000000000000000000000000000000000000000000000000000000000000",
"1000000000000000000000000000000000000000000000000000000000000000",
"10000000000000000000000000000000000000000000000000000000000000000",
"1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010",
@@ -234,6 +237,49 @@ test_intersect (void)
}
}
static void
test_intersect_hardcoded (void)
{
GtkBitmask *left, *right, *intersection, *expected;
const char *left_str, *right_str;
guint left_len, right_len;
guint i, l, r;
for (l = 0; l < G_N_ELEMENTS (tests); l++)
{
for (r = 0; r < G_N_ELEMENTS (tests); r++)
{
left = masks[l];
right = masks[r];
left_str = tests[l];
right_str = tests[r];
left_len = strlen (tests[l]);
right_len = strlen (tests[r]);
expected = _gtk_bitmask_new ();
if (left_len > right_len)
left_str += left_len - right_len;
if (right_len > left_len)
right_str += right_len - left_len;
i = MIN (right_len, left_len);
while (i--)
{
expected = _gtk_bitmask_set (expected, i, left_str[0] == '1' && right_str[0] == '1');
right_str++;
left_str++;
}
intersection = _gtk_bitmask_intersect (_gtk_bitmask_copy (left), right);
assert_cmpmasks (intersection, expected);
g_assert_cmpint (_gtk_bitmask_is_empty (expected), ==, !_gtk_bitmask_intersects (left, right));
_gtk_bitmask_free (intersection);
_gtk_bitmask_free (expected);
}
}
}
#define SWAP(_a, _b) G_STMT_START{ \
guint _tmp = _a; \
_a = _b; \
@@ -328,6 +374,7 @@ main (int argc, char *argv[])
g_test_add_func ("/bitmask/set", test_set);
g_test_add_func ("/bitmask/union", test_union);
g_test_add_func ("/bitmask/intersect", test_intersect);
g_test_add_func ("/bitmask/intersect_hardcoded", test_intersect_hardcoded);
g_test_add_func ("/bitmask/invert_range", test_invert_range);
result = g_test_run ();
+21 -18
View File
@@ -279,7 +279,7 @@ gtk_im_context_ime_set_client_window (GtkIMContext *context,
HIMC himc;
HWND hwnd;
hwnd = GDK_WINDOW_HWND (client_window);
hwnd = gdk_win32_window_get_impl_hwnd (client_window);
himc = ImmGetContext (hwnd);
if (himc)
{
@@ -349,16 +349,19 @@ gtk_im_context_ime_reset (GtkIMContext *context)
if (!context_ime->client_window)
return;
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
if (context_ime->preediting && ImmGetOpenStatus (himc))
ImmNotifyIME (himc, NI_COMPOSITIONSTR, CPS_CANCEL, 0);
if (context_ime->preediting)
{
if (ImmGetOpenStatus (himc))
ImmNotifyIME (himc, NI_COMPOSITIONSTR, CPS_CANCEL, 0);
context_ime->preediting = FALSE;
g_signal_emit_by_name (context, "preedit-changed");
context_ime->preediting = FALSE;
g_signal_emit_by_name (context, "preedit-changed");
}
ImmReleaseContext (hwnd, himc);
}
@@ -377,7 +380,7 @@ get_utf8_preedit_string (GtkIMContextIME *context_ime, gint *pos_ret)
if (!context_ime->client_window)
return g_strdup ("");
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return g_strdup ("");
@@ -438,7 +441,7 @@ get_pango_attr_list (GtkIMContextIME *context_ime, const gchar *utf8str)
if (!context_ime->client_window)
return attrs;
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return attrs;
@@ -576,7 +579,7 @@ gtk_im_context_ime_focus_in (GtkIMContext *context)
/* swtich current context */
context_ime->focus = TRUE;
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -586,7 +589,7 @@ gtk_im_context_ime_focus_in (GtkIMContext *context)
{
gdk_window_add_filter (toplevel,
gtk_im_context_ime_message_filter, context_ime);
top_hwnd = GDK_WINDOW_HWND (toplevel);
top_hwnd = gdk_win32_window_get_impl_hwnd (toplevel);
context_ime->toplevel = toplevel;
}
@@ -649,7 +652,7 @@ gtk_im_context_ime_focus_out (GtkIMContext *context)
/* swtich current context */
context_ime->focus = FALSE;
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -711,7 +714,7 @@ gtk_im_context_ime_focus_out (GtkIMContext *context)
gdk_window_remove_filter (toplevel,
gtk_im_context_ime_message_filter,
context_ime);
top_hwnd = GDK_WINDOW_HWND (toplevel);
top_hwnd = gdk_win32_window_get_impl_hwnd (toplevel);
context_ime->toplevel = NULL;
}
@@ -745,7 +748,7 @@ gtk_im_context_ime_set_cursor_location (GtkIMContext *context,
if (!context_ime->client_window)
return;
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -775,7 +778,7 @@ gtk_im_context_ime_set_use_preedit (GtkIMContext *context,
HWND hwnd;
HIMC himc;
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -811,7 +814,7 @@ gtk_im_context_ime_set_preedit_font (GtkIMContext *context)
if (!GTK_IS_WIDGET (widget))
return;
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -918,7 +921,7 @@ gtk_im_context_ime_message_filter (GdkXEvent *xevent,
if (!context_ime->focus)
return retval;
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return retval;
@@ -938,8 +941,8 @@ gtk_im_context_ime_message_filter (GdkXEvent *xevent,
RECT rc;
hwnd_top =
GDK_WINDOW_HWND (gdk_window_get_toplevel
(context_ime->client_window));
gdk_win32_window_get_impl_hwnd (gdk_window_get_toplevel
(context_ime->client_window));
GetWindowRect (hwnd_top, &rc);
pt.x = wx;
pt.y = wy;
@@ -1509,7 +1509,7 @@ cups_request_job_info_cb (GtkPrintBackendCups *print_backend,
state = 0;
#ifdef HAVE_CUPS_API_1_6
attr = ippFindAttribute (response, "job-state", IPP_TAG_INTEGER);
attr = ippFindAttribute (response, "job-state", IPP_TAG_ENUM);
state = ippGetInteger (attr, 0);
#else
for (attr = response->attrs; attr != NULL; attr = attr->next)
@@ -1696,7 +1696,7 @@ typedef struct
const gchar *member_uris;
const gchar *location;
const gchar *description;
const gchar *state_msg;
gchar *state_msg;
const gchar *reason_msg;
PrinterStateLevel reason_level;
gint state;
@@ -1732,7 +1732,7 @@ cups_printer_handle_attribute (GtkPrintBackendCups *cups_backend,
else if (strcmp (ippGetName (attr), "printer-info") == 0)
info->description = ippGetString (attr, 0, NULL);
else if (strcmp (ippGetName (attr), "printer-state-message") == 0)
info->state_msg = ippGetString (attr, 0, NULL);
info->state_msg = g_strdup (ippGetString (attr, 0, NULL));
else if (strcmp (ippGetName (attr), "printer-state-reasons") == 0)
/* Store most important reason to reason_msg and set
its importance at printer_state_reason_level */
@@ -2130,8 +2130,8 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
if (tmp_msg2 != NULL)
{
g_free (info->state_msg);
info->state_msg = tmp_msg2;
g_free (tmp_msg2);
}
}
@@ -2159,14 +2159,18 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
if (info->reason_level >= GTK_PRINTER_STATE_LEVEL_WARNING)
{
if (strlen (info->state_msg) == 0)
info->state_msg = reason_msg_desc;
{
g_free (info->state_msg);
info->state_msg = reason_msg_desc;
reason_msg_desc = NULL;
}
else
{
gchar *tmp_msg = NULL;
tmp_msg = g_strjoin (" ; ", info->state_msg,
reason_msg_desc, NULL);
g_free (info->state_msg);
info->state_msg = tmp_msg;
g_free (tmp_msg);
}
}
if (reason_msg_desc != NULL)
@@ -2195,6 +2199,7 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
/* The ref is held by GtkPrintBackend, in add_printer() */
g_object_unref (printer);
g_free (info->state_msg);
g_slice_free (PrinterSetupInfo, info);
if (attr == NULL)
@@ -2205,7 +2210,8 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
as inactive if it is in the list, emitting a printer_removed signal */
if (removed_printer_checklist != NULL)
{
g_list_free_full (removed_printer_checklist, (GDestroyNotify) mark_printer_inactive);
g_list_foreach (removed_printer_checklist, (GFunc) mark_printer_inactive, backend);
g_list_free (removed_printer_checklist);
list_has_changed = TRUE;
}
@@ -3164,7 +3170,7 @@ value_is_off (const char *value)
static char *
ppd_group_name (ppd_group_t *group)
{
return group->text;
return group->name;
}
static int
+2
View File
@@ -88,6 +88,8 @@ tests/reftests/rotated-layout.ref.ui
tests/reftests/rotated-layout.ui
tests/reftests/toplevel-vs-popup.ref.ui
tests/reftests/toplevel-vs-popup.ui
tests/reftests/treeview-fixed-height.ref.ui
tests/reftests/treeview-fixed-height.ui
tests/testfilechooser.c
tests/visuals/inline-toolbar-horizontal.ui
tests/visuals/inline-toolbar.ui
+399 -611
View File
File diff suppressed because it is too large Load Diff
+6419 -4081
View File
File diff suppressed because it is too large Load Diff
+455 -408
View File
File diff suppressed because it is too large Load Diff
+2698 -2446
View File
File diff suppressed because it is too large Load Diff
+8078 -7733
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -89,6 +89,8 @@ tests/reftests/rotated-layout.ref.ui
tests/reftests/rotated-layout.ui
tests/reftests/toplevel-vs-popup.ref.ui
tests/reftests/toplevel-vs-popup.ui
tests/reftests/treeview-fixed-height.ref.ui
tests/reftests/treeview-fixed-height.ui
tests/testfilechooser.c
tests/visuals/inline-toolbar-horizontal.ui
tests/visuals/inline-toolbar.ui
+155 -148
View File
@@ -32,8 +32,8 @@ msgstr ""
"Project-Id-Version: gtk+ 2.8.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk"
"%2b&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-09-20 18:23+0000\n"
"PO-Revision-Date: 2012-08-30 09:01+0200\n"
"POT-Creation-Date: 2013-03-20 21:17+0000\n"
"PO-Revision-Date: 2013-04-01 16:10+0200\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n"
@@ -91,7 +91,7 @@ msgstr "Senyaladors de depuració del GDK que s'han d'habilitar"
#. Placeholder in --gdk-no-debug=FLAGS in --help output
#. Placeholder in --gtk-debug=FLAGS in --help output
#. Placeholder in --gtk-no-debug=FLAGS in --help output
#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456
#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:454 ../gtk/gtkmain.c:457
msgid "FLAGS"
msgstr "SENYALADORS"
@@ -717,19 +717,19 @@ msgstr "Pàgina inicial"
msgid "About %s"
msgstr "Quant a %s"
#: ../gtk/gtkaboutdialog.c:2399
#: ../gtk/gtkaboutdialog.c:2401
msgid "Created by"
msgstr "Creat per"
#: ../gtk/gtkaboutdialog.c:2402
#: ../gtk/gtkaboutdialog.c:2404
msgid "Documented by"
msgstr "Documentat per"
#: ../gtk/gtkaboutdialog.c:2412
#: ../gtk/gtkaboutdialog.c:2414
msgid "Translated by"
msgstr "Traduït per"
#: ../gtk/gtkaboutdialog.c:2417
#: ../gtk/gtkaboutdialog.c:2419
msgid "Artwork by"
msgstr "Art per"
@@ -834,7 +834,7 @@ msgstr "No s'ha trobat l'aplicació"
msgid "Select an application to open \"%s\""
msgstr "Seleccioneu una aplicació per obrir «%s»"
#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654
#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657
#, c-format
msgid "No applications available to open \"%s\""
msgstr "No hi ha cap aplicació disponible per obrir «%s»"
@@ -866,23 +866,23 @@ msgstr "Oblida l'associació"
msgid "Show other applications"
msgstr "Mostra altres aplicacions"
#: ../gtk/gtkappchooserwidget.c:603
#: ../gtk/gtkappchooserwidget.c:606
msgid "Default Application"
msgstr "Aplicació per defecte"
#: ../gtk/gtkappchooserwidget.c:741
#: ../gtk/gtkappchooserwidget.c:744
msgid "Recommended Applications"
msgstr "Aplicacions recomanades"
#: ../gtk/gtkappchooserwidget.c:756
#: ../gtk/gtkappchooserwidget.c:759
msgid "Related Applications"
msgstr "Aplicacions relacionades"
#: ../gtk/gtkappchooserwidget.c:770
#: ../gtk/gtkappchooserwidget.c:773
msgid "Other Applications"
msgstr "Altres aplicacions"
#: ../gtk/gtkapplication.c:1556
#: ../gtk/gtkapplication.c:1558
#, c-format
msgid ""
"%s cannot quit at this time:\n"
@@ -1047,7 +1047,7 @@ msgstr "No vàlid"
#. * an accelerator when the cell is clicked to change the
#. * acelerator.
#.
#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745
#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747
msgid "New accelerator..."
msgstr "Accelerador nou..."
@@ -1449,7 +1449,7 @@ msgstr "La fixació de majúscules està activada"
msgid "Select a File"
msgstr "Seleccioneu un fitxer"
#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817
#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1819
msgid "Desktop"
msgstr "Escriptori"
@@ -1465,23 +1465,23 @@ msgstr "Altre..."
msgid "Type name of new folder"
msgstr "Escriviu el nom de la carpeta nova"
#: ../gtk/gtkfilechooserdefault.c:968
#: ../gtk/gtkfilechooserdefault.c:970
msgid "Could not retrieve information about the file"
msgstr "No s'ha pogut obtenir informació sobre el fitxer"
#: ../gtk/gtkfilechooserdefault.c:979
#: ../gtk/gtkfilechooserdefault.c:981
msgid "Could not add a bookmark"
msgstr "No s'ha pogut afegir una adreça d'interès"
#: ../gtk/gtkfilechooserdefault.c:990
#: ../gtk/gtkfilechooserdefault.c:992
msgid "Could not remove bookmark"
msgstr "No s'ha pogut suprimir l'adreça d'interès"
#: ../gtk/gtkfilechooserdefault.c:1001
#: ../gtk/gtkfilechooserdefault.c:1003
msgid "The folder could not be created"
msgstr "No s'ha pogut crear la carpeta"
#: ../gtk/gtkfilechooserdefault.c:1014
#: ../gtk/gtkfilechooserdefault.c:1016
msgid ""
"The folder could not be created, as a file with the same name already "
"exists. Try using a different name for the folder, or rename the file first."
@@ -1490,16 +1490,16 @@ msgstr ""
"nom. Proveu d'utilitzar un nom diferent per a la carpeta, o bé canvieu el "
"nom del fitxer abans de crear-la."
#: ../gtk/gtkfilechooserdefault.c:1028
#: ../gtk/gtkfilechooserdefault.c:1030
msgid "You need to choose a valid filename."
msgstr "Cal que trieu un nom de fitxer vàlid."
#: ../gtk/gtkfilechooserdefault.c:1031
#: ../gtk/gtkfilechooserdefault.c:1033
#, c-format
msgid "Cannot create a file under %s as it is not a folder"
msgstr "No es pot crear un fitxer a %s, atès que no és una carpeta"
#: ../gtk/gtkfilechooserdefault.c:1043
#: ../gtk/gtkfilechooserdefault.c:1045
msgid ""
"You may only select folders. The item that you selected is not a folder; "
"try using a different item."
@@ -1507,11 +1507,11 @@ msgstr ""
"Només podeu seleccionar carpetes. L'element que heu seleccionat no és una "
"carpeta. Torneu-ho a intentar utilitzant un element diferent."
#: ../gtk/gtkfilechooserdefault.c:1053
#: ../gtk/gtkfilechooserdefault.c:1055
msgid "Invalid file name"
msgstr "El nom del fitxer no és vàlid"
#: ../gtk/gtkfilechooserdefault.c:1063
#: ../gtk/gtkfilechooserdefault.c:1065
msgid "The folder contents could not be displayed"
msgstr "No s'ha pogut mostrar el contingut de la carpeta"
@@ -1519,194 +1519,194 @@ msgstr "No s'ha pogut mostrar el contingut de la carpeta"
#. * is a hostname. Nautilus and the panel contain the same string
#. * to translate.
#.
#: ../gtk/gtkfilechooserdefault.c:1589
#: ../gtk/gtkfilechooserdefault.c:1591
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s a %2$s"
#: ../gtk/gtkfilechooserdefault.c:1738
#: ../gtk/gtkfilechooserdefault.c:1740
msgid "Search"
msgstr "Cerca"
#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988
#: ../gtk/gtkfilechooserdefault.c:1764 ../gtk/gtkfilechooserdefault.c:4990
msgid "Recently Used"
msgstr "Utilitzats recentment"
#: ../gtk/gtkfilechooserdefault.c:2361
#: ../gtk/gtkfilechooserdefault.c:2363
msgid "Select which types of files are shown"
msgstr "Seleccioneu quins tipus de fitxers es mostren"
#: ../gtk/gtkfilechooserdefault.c:2720
#: ../gtk/gtkfilechooserdefault.c:2722
#, c-format
msgid "Add the folder '%s' to the bookmarks"
msgstr "Afegeix la carpeta «%s» a les adreces d'interès"
#: ../gtk/gtkfilechooserdefault.c:2764
#: ../gtk/gtkfilechooserdefault.c:2766
#, c-format
msgid "Add the current folder to the bookmarks"
msgstr "Afegeix la carpeta actual a les adreces d'interès"
#: ../gtk/gtkfilechooserdefault.c:2766
#: ../gtk/gtkfilechooserdefault.c:2768
#, c-format
msgid "Add the selected folders to the bookmarks"
msgstr "Afegeix les carpetes seleccionades a les adreces d'interès"
#: ../gtk/gtkfilechooserdefault.c:2804
#: ../gtk/gtkfilechooserdefault.c:2806
#, c-format
msgid "Remove the bookmark '%s'"
msgstr "Suprimeix l'adreça d'interès «%s»"
#: ../gtk/gtkfilechooserdefault.c:2806
#: ../gtk/gtkfilechooserdefault.c:2808
#, c-format
msgid "Bookmark '%s' cannot be removed"
msgstr "No es pot suprimir l'adreça d'interès «%s»"
#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699
#: ../gtk/gtkfilechooserdefault.c:2815 ../gtk/gtkfilechooserdefault.c:3701
msgid "Remove the selected bookmark"
msgstr "Suprimeix l'adreça d'interès seleccionada"
#: ../gtk/gtkfilechooserdefault.c:3377
#: ../gtk/gtkfilechooserdefault.c:3379
msgid "Remove"
msgstr "Suprimeix"
#: ../gtk/gtkfilechooserdefault.c:3386
#: ../gtk/gtkfilechooserdefault.c:3388
msgid "Rename..."
msgstr "Canvia el nom..."
#. Accessible object name for the file chooser's shortcuts pane
#: ../gtk/gtkfilechooserdefault.c:3550
#: ../gtk/gtkfilechooserdefault.c:3552
msgid "Places"
msgstr "Llocs"
#. Column header for the file chooser's shortcuts pane
#: ../gtk/gtkfilechooserdefault.c:3607
#: ../gtk/gtkfilechooserdefault.c:3609
msgid "_Places"
msgstr "_Llocs"
#: ../gtk/gtkfilechooserdefault.c:3687
#: ../gtk/gtkfilechooserdefault.c:3689
msgid "Add the selected folder to the Bookmarks"
msgstr "Afegeix la carpeta seleccionada a les adreces d'interès"
#: ../gtk/gtkfilechooserdefault.c:3948
#: ../gtk/gtkfilechooserdefault.c:3950
msgid "Could not select file"
msgstr "No s'ha pogut seleccionar el fitxer"
#: ../gtk/gtkfilechooserdefault.c:4173
#: ../gtk/gtkfilechooserdefault.c:4175
msgid "_Visit this file"
msgstr "_Visita aquest fitxer"
#: ../gtk/gtkfilechooserdefault.c:4176
#: ../gtk/gtkfilechooserdefault.c:4178
msgid "_Copy file's location"
msgstr "_Copia la ubicació del fitxer"
#: ../gtk/gtkfilechooserdefault.c:4179
#: ../gtk/gtkfilechooserdefault.c:4181
msgid "_Add to Bookmarks"
msgstr "_Afegeix a les adreces d'interès"
#: ../gtk/gtkfilechooserdefault.c:4186
#: ../gtk/gtkfilechooserdefault.c:4188
msgid "Show _Hidden Files"
msgstr "Mostra els fitxers _ocults"
#: ../gtk/gtkfilechooserdefault.c:4189
#: ../gtk/gtkfilechooserdefault.c:4191
msgid "Show _Size Column"
msgstr "Mostra la columna de la _mida"
#: ../gtk/gtkfilechooserdefault.c:4414
#: ../gtk/gtkfilechooserdefault.c:4416
msgid "Files"
msgstr "Fitxers"
#: ../gtk/gtkfilechooserdefault.c:4465
#: ../gtk/gtkfilechooserdefault.c:4467
msgid "Name"
msgstr "Nom"
#: ../gtk/gtkfilechooserdefault.c:4488
#: ../gtk/gtkfilechooserdefault.c:4490
msgid "Size"
msgstr "Mida"
#: ../gtk/gtkfilechooserdefault.c:4502
#: ../gtk/gtkfilechooserdefault.c:4504
msgid "Modified"
msgstr "Modificat"
#. Label
#: ../gtk/gtkfilechooserdefault.c:4595
#: ../gtk/gtkfilechooserdefault.c:4597
msgid "_Name:"
msgstr "_Nom:"
#: ../gtk/gtkfilechooserdefault.c:4826
#: ../gtk/gtkfilechooserdefault.c:4828
msgid "Type a file name"
msgstr "Escriviu un nom de fitxer"
#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884
#: ../gtk/gtkfilechooserdefault.c:4875 ../gtk/gtkfilechooserdefault.c:4886
msgid "Please select a folder below"
msgstr "Seleccioneu una carpeta a continuació"
#: ../gtk/gtkfilechooserdefault.c:4879
#: ../gtk/gtkfilechooserdefault.c:4881
msgid "Please type a file name"
msgstr "Escriviu un nom de fitxer"
#. Create Folder
#: ../gtk/gtkfilechooserdefault.c:4950
#: ../gtk/gtkfilechooserdefault.c:4952
msgid "Create Fo_lder"
msgstr "Crea una ca_rpeta"
#: ../gtk/gtkfilechooserdefault.c:4998
#: ../gtk/gtkfilechooserdefault.c:5000
msgid "Search:"
msgstr "Cerca:"
#: ../gtk/gtkfilechooserdefault.c:5049
#: ../gtk/gtkfilechooserdefault.c:5051
msgid "_Location:"
msgstr "_Ubicació:"
#: ../gtk/gtkfilechooserdefault.c:5500
#: ../gtk/gtkfilechooserdefault.c:5502
msgid "Save in _folder:"
msgstr "De_sa a la carpeta:"
#: ../gtk/gtkfilechooserdefault.c:5502
#: ../gtk/gtkfilechooserdefault.c:5504
msgid "Create in _folder:"
msgstr "Crea a la _carpeta:"
#: ../gtk/gtkfilechooserdefault.c:6589
#: ../gtk/gtkfilechooserdefault.c:6591
#, c-format
msgid "Could not read the contents of %s"
msgstr "No s'ha pogut llegir el contingut de %s"
#: ../gtk/gtkfilechooserdefault.c:6593
#: ../gtk/gtkfilechooserdefault.c:6595
msgid "Could not read the contents of the folder"
msgstr "No s'ha pogut llegir el contingut de la carpeta"
#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754
#: ../gtk/gtkfilechooserdefault.c:6934
#: ../gtk/gtkfilechooserdefault.c:6688 ../gtk/gtkfilechooserdefault.c:6756
#: ../gtk/gtkfilechooserdefault.c:6936
msgid "Unknown"
msgstr "Desconegut"
#: ../gtk/gtkfilechooserdefault.c:6701
#: ../gtk/gtkfilechooserdefault.c:6703
msgid "%H:%M"
msgstr "%H:%M"
#: ../gtk/gtkfilechooserdefault.c:6703
#: ../gtk/gtkfilechooserdefault.c:6705
msgid "Yesterday at %H:%M"
msgstr "Ahir a les %H:%M"
#: ../gtk/gtkfilechooserdefault.c:7405
#: ../gtk/gtkfilechooserdefault.c:7407
msgid "Cannot change to folder because it is not local"
msgstr "No es pot canviar a la carpeta perquè no és local"
#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030
#: ../gtk/gtkfilechooserdefault.c:8014 ../gtk/gtkfilechooserdefault.c:8035
#, c-format
msgid "Shortcut %s already exists"
msgstr "La drecera %s ja existeix"
#: ../gtk/gtkfilechooserdefault.c:8120
#: ../gtk/gtkfilechooserdefault.c:8125
#, c-format
msgid "Shortcut %s does not exist"
msgstr "La drecera %s no existeix"
#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548
#: ../gtk/gtkfilechooserdefault.c:8371 ../gtk/gtkprintunixdialog.c:548
#, c-format
msgid "A file named \"%s\" already exists. Do you want to replace it?"
msgstr "Ja existeix un fitxer amb el nom «%s». Voleu reemplaçar-lo?"
#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552
#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:552
#, c-format
msgid ""
"The file already exists in \"%s\". Replacing it will overwrite its contents."
@@ -1714,15 +1714,15 @@ msgstr ""
"El fitxer ja existeix a «%s». Si el reemplaceu en sobreescriureu el "
"contingut."
#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559
#: ../gtk/gtkfilechooserdefault.c:8379 ../gtk/gtkprintunixdialog.c:559
msgid "_Replace"
msgstr "_Reemplaça"
#: ../gtk/gtkfilechooserdefault.c:9181
#: ../gtk/gtkfilechooserdefault.c:9186
msgid "Could not start the search process"
msgstr "No s'ha pogut iniciar el procés de cerca"
#: ../gtk/gtkfilechooserdefault.c:9182
#: ../gtk/gtkfilechooserdefault.c:9187
msgid ""
"The program was not able to create a connection to the indexer daemon. "
"Please make sure it is running."
@@ -1730,11 +1730,11 @@ msgstr ""
"El programa no ha pogut crear cap connexió al dimoni d'indexació. Assegureu-"
"vos que s'està executant."
#: ../gtk/gtkfilechooserdefault.c:9196
#: ../gtk/gtkfilechooserdefault.c:9201
msgid "Could not send the search request"
msgstr "No s'ha pogut enviar la sol·licitud de cerca"
#: ../gtk/gtkfilechooserdefault.c:9806
#: ../gtk/gtkfilechooserdefault.c:9811
#, c-format
msgid "Could not mount %s"
msgstr "No s'ha pogut muntar %s"
@@ -1813,13 +1813,13 @@ msgstr "Obre l'_enllaç"
msgid "Copy _Link Address"
msgstr "Copia l'adreça de l'en_llaç"
#: ../gtk/gtk-launch.c:69
#: ../gtk/gtk-launch.c:73
msgid "APPLICATION [URI...] - launch an APPLICATION with URI."
msgstr "APLICACIÓ [URI] - executa una APLICACIÓ amb una URI."
#. Translators: this message will appear after the usage string
#. and before the list of options.
#: ../gtk/gtk-launch.c:73
#: ../gtk/gtk-launch.c:77
msgid ""
"Launch specified application by its desktop file info\n"
"optionally passing list of URIs as arguments."
@@ -1827,34 +1827,41 @@ msgstr ""
"Executa l'aplicació especificada pel seu fitxer d'informació\n"
"d'escriptori amb una llista opcional d'URI com a arguments."
#: ../gtk/gtk-launch.c:85
#: ../gtk/gtk-launch.c:89
#, c-format
msgid "Error parsing commandline options: %s\n"
msgstr ""
"S'ha produït un error en analitzar les opcions de la línia d'ordres: %s\n"
#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100
#: ../gtk/gtk-launch.c:91 ../gtk/gtk-launch.c:104
#, c-format
msgid "Try \"%s --help\" for more information."
msgstr "Per a més informació proveu «%s --help»."
#. Translators: the %s is the program name. This error message
#. means the user is calling gtk-launch without any argument.
#: ../gtk/gtk-launch.c:98
#: ../gtk/gtk-launch.c:102
#, c-format
msgid "%s: missing application name"
msgstr "%s: manca el nom de l'aplicació"
#: ../gtk/gtk-launch.c:123
#, c-format
msgid "Creating AppInfo from id not supported on non unix operating systems"
msgstr ""
"No es poden crear «AppInfo» a partir d'identificadors en sistemes operatius "
"que no siguin UNIX"
#. Translators: the first %s is the program name, the second one
#. is the application name.
#: ../gtk/gtk-launch.c:122
#: ../gtk/gtk-launch.c:131
#, c-format
msgid "%s: no such application %s"
msgstr "%s: no existeix l'aplicació %s"
#. Translators: the first %s is the program name, the second one
#. is the error message.
#: ../gtk/gtk-launch.c:140
#: ../gtk/gtk-launch.c:149
#, c-format
msgid "%s: error launching application: %s\n"
msgstr "%s: s'ha produït un error en executar l'aplicació: %s\n"
@@ -1900,27 +1907,27 @@ msgstr ""
"Contacteu amb l'administrador del sistema"
#. Description of --gtk-module=MODULES in --help output
#: ../gtk/gtkmain.c:446
#: ../gtk/gtkmain.c:447
msgid "Load additional GTK+ modules"
msgstr "Carrega mòduls del GTK+ addicionals"
#. Placeholder in --gtk-module=MODULES in --help output
#: ../gtk/gtkmain.c:447
#: ../gtk/gtkmain.c:448
msgid "MODULES"
msgstr "MÒDULS"
#. Description of --g-fatal-warnings in --help output
#: ../gtk/gtkmain.c:449
#: ../gtk/gtkmain.c:450
msgid "Make all warnings fatal"
msgstr "Considera tots els avisos com a greus"
#. Description of --gtk-debug=FLAGS in --help output
#: ../gtk/gtkmain.c:452
#: ../gtk/gtkmain.c:453
msgid "GTK+ debugging flags to set"
msgstr "Senyaladors de depuració de GTK+ que s'han d'habilitar"
#. Description of --gtk-no-debug=FLAGS in --help output
#: ../gtk/gtkmain.c:455
#: ../gtk/gtkmain.c:456
msgid "GTK+ debugging flags to unset"
msgstr "Senyaladors de depuració de GTK+ que s'han d'inhabilitar"
@@ -1931,20 +1938,20 @@ msgstr "Senyaladors de depuració de GTK+ que s'han d'inhabilitar"
#. * Do *not* translate it to "predefinito:LTR", if it
#. * it isn't default:LTR or default:RTL it will not work
#.
#: ../gtk/gtkmain.c:707
#: ../gtk/gtkmain.c:704
msgid "default:LTR"
msgstr "default:LTR"
#: ../gtk/gtkmain.c:775
#: ../gtk/gtkmain.c:772
#, c-format
msgid "Cannot open display: %s"
msgstr "No es pot obrir la pantalla: %s"
#: ../gtk/gtkmain.c:841
#: ../gtk/gtkmain.c:838
msgid "GTK+ Options"
msgstr "Opcions del GTK+"
#: ../gtk/gtkmain.c:841
#: ../gtk/gtkmain.c:838
msgid "Show GTK+ Options"
msgstr "Mostra les opcions del GTK+"
@@ -2033,7 +2040,7 @@ msgstr "Intèrpret d'ordres «Z»"
msgid "Cannot end process with PID %d: %s"
msgstr "No es pot finalitzar el procés amb el PID %d: %s"
#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705
#: ../gtk/gtknotebook.c:5053 ../gtk/gtknotebook.c:7707
#, c-format
msgid "Page %u"
msgstr "Pàgina %u"
@@ -2041,14 +2048,14 @@ msgstr "Pàgina %u"
#. Translators: the format here is used to build the string that will be rendered
#. * in the number emblem.
#.
#: ../gtk/gtknumerableicon.c:481
#: ../gtk/gtknumerableicon.c:482
#, c-format
msgctxt "Number format"
msgid "%d"
msgstr "%d"
#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846
#: ../gtk/gtkpapersize.c:886
#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848
#: ../gtk/gtkpapersize.c:888
msgid "Not a valid page setup file"
msgstr "No és un fitxer de configuració de pàgina vàlid"
@@ -2109,7 +2116,7 @@ msgstr "Avall"
msgid "File System Root"
msgstr "Arrel del sistema de fitxers"
#: ../gtk/gtkprintbackend.c:748
#: ../gtk/gtkprintbackend.c:750
msgid "Authentication"
msgstr "Autenticació"
@@ -2340,42 +2347,42 @@ msgstr "General"
#. * multiple pages on a sheet when printing
#.
#: ../gtk/gtkprintunixdialog.c:3058
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692
msgid "Left to right, top to bottom"
msgstr "D'esquerra a dreta, de dalt a baix"
#: ../gtk/gtkprintunixdialog.c:3058
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692
msgid "Left to right, bottom to top"
msgstr "D'esquerra a dreta, de baix a dalt"
#: ../gtk/gtkprintunixdialog.c:3059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693
msgid "Right to left, top to bottom"
msgstr "De dreta a esquerra, de dalt a baix"
#: ../gtk/gtkprintunixdialog.c:3059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693
msgid "Right to left, bottom to top"
msgstr "De dreta a esquerra, de baix a dalt"
#: ../gtk/gtkprintunixdialog.c:3060
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694
msgid "Top to bottom, left to right"
msgstr "De dalt a baix, d'esquerra a dreta"
#: ../gtk/gtkprintunixdialog.c:3060
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694
msgid "Top to bottom, right to left"
msgstr "De dalt a baix, de dreta a esquerra"
#: ../gtk/gtkprintunixdialog.c:3061
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695
msgid "Bottom to top, left to right"
msgstr "De baix a dalt, d'esquerra a dreta"
#: ../gtk/gtkprintunixdialog.c:3061
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695
msgid "Bottom to top, right to left"
msgstr "De baix a dalt, de dreta a esquerra"
@@ -2383,7 +2390,7 @@ msgstr "De baix a dalt, de dreta a esquerra"
#. * dialog that controls in what order multiple pages are arranged
#.
#: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
msgid "Page Ordering"
msgstr "Ordenació de les pàgines"
@@ -3377,7 +3384,7 @@ msgstr ""
msgid "Unexpected character data on line %d char %d"
msgstr "S'han trobat dades de caràcter inesperades a la línia %d, caràcter %d"
#: ../gtk/gtkuimanager.c:2738
#: ../gtk/gtkuimanager.c:2694
msgid "Empty"
msgstr "Buit"
@@ -4566,155 +4573,155 @@ msgstr "En pausa; es refusen les tasques"
msgid "Rejecting Jobs"
msgstr "Es refusen les tasques"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915
msgid "Two Sided"
msgstr "Doble cara"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916
msgid "Paper Type"
msgstr "Tipus de paper"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917
msgid "Paper Source"
msgstr "Font del paper"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918
msgid "Output Tray"
msgstr "Safata de sortida"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919
msgid "Resolution"
msgstr "Resolució"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920
msgid "GhostScript pre-filtering"
msgstr "Filtrat previ del GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929
msgid "One Sided"
msgstr "Una cara"
#. Translators: this is an option of "Two Sided"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931
msgid "Long Edge (Standard)"
msgstr "Cantó llarg (estàndard)"
#. Translators: this is an option of "Two Sided"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933
msgid "Short Edge (Flip)"
msgstr "Cantó curt (capgirat)"
#. Translators: this is an option of "Paper Source"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945
msgid "Auto Select"
msgstr "Selecció automàtica"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2941
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435
msgid "Printer Default"
msgstr "Per defecte de la impressora"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949
msgid "Embed GhostScript fonts only"
msgstr "Incrusta només els tipus de lletra GhostScript"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951
msgid "Convert to PS level 1"
msgstr "Converteix a PS, nivell 1"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953
msgid "Convert to PS level 2"
msgstr "Converteix a PS, nivell 2"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955
msgid "No pre-filtering"
msgstr "Sense filtratge previ"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2958
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964
msgid "Miscellaneous"
msgstr "Miscel·lània"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "Urgent"
msgstr "Urgent"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "High"
msgstr "Alta"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "Medium"
msgstr "Mitjana"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "Low"
msgstr "Baixa"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717
msgid "Job Priority"
msgstr "Prioritat de la tasca"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728
msgid "Billing Info"
msgstr "Informació de facturació"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "None"
msgstr "Cap"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Classified"
msgstr "Classificat"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Confidential"
msgstr "Confidencial"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Secret"
msgstr "Secret"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Standard"
msgstr "Estàndard"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Top Secret"
msgstr "Alt secret"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Unclassified"
msgstr "No classificat"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754
msgid "Pages per Sheet"
msgstr "Pàgines per full"
@@ -4722,7 +4729,7 @@ msgstr "Pàgines per full"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814
msgid "Before"
msgstr "Abans"
@@ -4730,7 +4737,7 @@ msgstr "Abans"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829
msgid "After"
msgstr "Després"
@@ -4738,7 +4745,7 @@ msgstr "Després"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849
msgid "Print at"
msgstr "Imprimeix"
@@ -4746,7 +4753,7 @@ msgstr "Imprimeix"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3854
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
msgid "Print at time"
msgstr "Imprimeix a una hora o data determinada"
@@ -4754,18 +4761,18 @@ msgstr "Imprimeix a una hora o data determinada"
#. * size. The two placeholders are replaced with the width and height
#. * in points. E.g: "Custom 230.4x142.9"
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895
#, c-format
msgid "Custom %sx%s"
msgstr "Personalitzat %sx%s"
# Connectada? (josep)
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976
msgid "Printer Profile"
msgstr "Perfil de la impressora"
#. TRANSLATORS: this is when color profile information is unavailable
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983
msgid "Unavailable"
msgstr "No està disponible"
+163 -175
View File
@@ -3,6 +3,7 @@
# Copyright (C) 2003, 2004, 2005 Miloslav Trmac <mitr@volny.cz>.
# Copyright (C) 2006 Lukas Novotny <lukasnov@cvs.gnome.org>.
# This file is distributed under the same license as the gtk+ package.
#
# Stanislav Brabec <utx@k332.feld.cvut.cz>, 1998.
# Jiří Pavlovský <pavlovsk@ff.cuni.cz>, 1998.
# Jiří Lebl <jirka@5z.com>, 2002.
@@ -11,22 +12,23 @@
# Jakub Friedl <jfriedl@suse.cz>, 2006.
# Lukas Novotny <lukasnov@cvs.gnome.org>, 2006.
# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010, 2011, 2012.
# Marek Černocký <marek@manet.cz>, 2012.
# Marek Černocký <marek@manet.cz>, 2012, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: gtk+\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%"
"2b&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-09-23 23:34+0000\n"
"PO-Revision-Date: 2012-09-24 17:17+0200\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Project-Id-Version: gtk+ gtk-3.6\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk"
"%2b&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2013-02-08 15:47+0000\n"
"PO-Revision-Date: 2013-02-17 20:00+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Generator: Gtranslator 2.91.6\n"
"X-Project-Style: gnome\n"
#: ../gdk/gdk.c:155
@@ -78,7 +80,7 @@ msgstr "Ladicí příznaky GDK, které nastaví"
#. Placeholder in --gdk-no-debug=FLAGS in --help output
#. Placeholder in --gtk-debug=FLAGS in --help output
#. Placeholder in --gtk-no-debug=FLAGS in --help output
#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:453 ../gtk/gtkmain.c:456
#: ../gdk/gdk.c:214 ../gdk/gdk.c:217 ../gtk/gtkmain.c:454 ../gtk/gtkmain.c:457
msgid "FLAGS"
msgstr "PŘÍZNAKY"
@@ -696,19 +698,19 @@ msgstr "Domovská stránka"
msgid "About %s"
msgstr "O aplikaci %s"
#: ../gtk/gtkaboutdialog.c:2399
#: ../gtk/gtkaboutdialog.c:2401
msgid "Created by"
msgstr "Vytvořili"
#: ../gtk/gtkaboutdialog.c:2402
#: ../gtk/gtkaboutdialog.c:2404
msgid "Documented by"
msgstr "Zdokumentovali"
#: ../gtk/gtkaboutdialog.c:2412
#: ../gtk/gtkaboutdialog.c:2414
msgid "Translated by"
msgstr "Přeložili"
#: ../gtk/gtkaboutdialog.c:2417
#: ../gtk/gtkaboutdialog.c:2419
msgid "Artwork by"
msgstr "Grafika"
@@ -791,7 +793,6 @@ msgid "Failed to look for applications online"
msgstr "Vyhledání aplikací online se nezdařilo"
#: ../gtk/gtkappchooserdialog.c:188
#| msgid "Find applications online"
msgid "_Find applications online"
msgstr "_Vyhledat aplikace online"
@@ -814,7 +815,7 @@ msgstr "Nelze nalézt aplikaci"
msgid "Select an application to open \"%s\""
msgstr "Vyberte aplikaci k zobrazení souboru „%s“"
#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:654
#: ../gtk/gtkappchooserdialog.c:398 ../gtk/gtkappchooserwidget.c:657
#, c-format
msgid "No applications available to open \"%s\""
msgstr "K zobrazení souboru „%s“ nejsou k dispozici žádné aplikace"
@@ -846,23 +847,23 @@ msgstr "Zapomenout asociaci"
msgid "Show other applications"
msgstr "Zobrazit další aplikace"
#: ../gtk/gtkappchooserwidget.c:603
#: ../gtk/gtkappchooserwidget.c:606
msgid "Default Application"
msgstr "Výchozí aplikace"
#: ../gtk/gtkappchooserwidget.c:741
#: ../gtk/gtkappchooserwidget.c:744
msgid "Recommended Applications"
msgstr "Doporučené aplikace"
#: ../gtk/gtkappchooserwidget.c:756
#: ../gtk/gtkappchooserwidget.c:759
msgid "Related Applications"
msgstr "Související aplikace"
#: ../gtk/gtkappchooserwidget.c:770
#: ../gtk/gtkappchooserwidget.c:773
msgid "Other Applications"
msgstr "Další aplikace"
#: ../gtk/gtkapplication.c:1556
#: ../gtk/gtkapplication.c:1558
#, c-format
msgid ""
"%s cannot quit at this time:\n"
@@ -1025,7 +1026,7 @@ msgstr "Neplatné"
#. * an accelerator when the cell is clicked to change the
#. * acelerator.
#.
#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:745
#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747
msgid "New accelerator..."
msgstr "Nová klávesová zkratka…"
@@ -1425,7 +1426,7 @@ msgstr "Funkce Caps Lock je zapnuta"
msgid "Select a File"
msgstr "Vyberte soubor"
#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1817
#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1819
msgid "Desktop"
msgstr "Pracovní plocha"
@@ -1441,23 +1442,23 @@ msgstr "Jiné…"
msgid "Type name of new folder"
msgstr "Zadání názvu nové složky"
#: ../gtk/gtkfilechooserdefault.c:968
#: ../gtk/gtkfilechooserdefault.c:970
msgid "Could not retrieve information about the file"
msgstr "O souboru nelze získat informace"
#: ../gtk/gtkfilechooserdefault.c:979
#: ../gtk/gtkfilechooserdefault.c:981
msgid "Could not add a bookmark"
msgstr "Nelze přidat záložku"
#: ../gtk/gtkfilechooserdefault.c:990
#: ../gtk/gtkfilechooserdefault.c:992
msgid "Could not remove bookmark"
msgstr "Nelze odstranit záložku"
#: ../gtk/gtkfilechooserdefault.c:1001
#: ../gtk/gtkfilechooserdefault.c:1003
msgid "The folder could not be created"
msgstr "Složku nelze vytvořit"
#: ../gtk/gtkfilechooserdefault.c:1014
#: ../gtk/gtkfilechooserdefault.c:1016
msgid ""
"The folder could not be created, as a file with the same name already "
"exists. Try using a different name for the folder, or rename the file first."
@@ -1465,16 +1466,16 @@ msgstr ""
"Složku nelze vytvořit, protože již existuje soubor se stejným názvem. Zkuste "
"pro složku použít jiný název, nebo nejprve přejmenovat soubor."
#: ../gtk/gtkfilechooserdefault.c:1028
#: ../gtk/gtkfilechooserdefault.c:1030
msgid "You need to choose a valid filename."
msgstr "Vybraný název souboru musí být platný."
#: ../gtk/gtkfilechooserdefault.c:1031
#: ../gtk/gtkfilechooserdefault.c:1033
#, c-format
msgid "Cannot create a file under %s as it is not a folder"
msgstr "V %s nelze vytvořit soubor, jelikož se nejedná o složku"
#: ../gtk/gtkfilechooserdefault.c:1043
#: ../gtk/gtkfilechooserdefault.c:1045
msgid ""
"You may only select folders. The item that you selected is not a folder; "
"try using a different item."
@@ -1482,11 +1483,11 @@ msgstr ""
"Vybrat lze pouze složky. Vybraná položka není složkou; zkuste použít jinou "
"položku."
#: ../gtk/gtkfilechooserdefault.c:1053
#: ../gtk/gtkfilechooserdefault.c:1055
msgid "Invalid file name"
msgstr "Neplatný název souboru"
#: ../gtk/gtkfilechooserdefault.c:1063
#: ../gtk/gtkfilechooserdefault.c:1065
msgid "The folder contents could not be displayed"
msgstr "Obsah složky nelze zobrazit"
@@ -1494,208 +1495,208 @@ msgstr "Obsah složky nelze zobrazit"
#. * is a hostname. Nautilus and the panel contain the same string
#. * to translate.
#.
#: ../gtk/gtkfilechooserdefault.c:1589
#: ../gtk/gtkfilechooserdefault.c:1591
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s na %2$s"
#: ../gtk/gtkfilechooserdefault.c:1738
#: ../gtk/gtkfilechooserdefault.c:1740
msgid "Search"
msgstr "Hledat"
#: ../gtk/gtkfilechooserdefault.c:1762 ../gtk/gtkfilechooserdefault.c:4988
#: ../gtk/gtkfilechooserdefault.c:1764 ../gtk/gtkfilechooserdefault.c:4990
msgid "Recently Used"
msgstr "Naposledy použité"
#: ../gtk/gtkfilechooserdefault.c:2361
#: ../gtk/gtkfilechooserdefault.c:2363
msgid "Select which types of files are shown"
msgstr "Výběr zobrazených typů souborů"
#: ../gtk/gtkfilechooserdefault.c:2720
#: ../gtk/gtkfilechooserdefault.c:2722
#, c-format
msgid "Add the folder '%s' to the bookmarks"
msgstr "Přidá složku „%s“ mezi záložky"
#: ../gtk/gtkfilechooserdefault.c:2764
#: ../gtk/gtkfilechooserdefault.c:2766
#, c-format
msgid "Add the current folder to the bookmarks"
msgstr "Přidá aktuální složku mezi záložky"
#: ../gtk/gtkfilechooserdefault.c:2766
#: ../gtk/gtkfilechooserdefault.c:2768
#, c-format
msgid "Add the selected folders to the bookmarks"
msgstr "Přidá zvolené složky mezi záložky"
#: ../gtk/gtkfilechooserdefault.c:2804
#: ../gtk/gtkfilechooserdefault.c:2806
#, c-format
msgid "Remove the bookmark '%s'"
msgstr "Odstraní záložku „%s“"
#: ../gtk/gtkfilechooserdefault.c:2806
#: ../gtk/gtkfilechooserdefault.c:2808
#, c-format
msgid "Bookmark '%s' cannot be removed"
msgstr "Záložka „%s“ nemůže být odstraněna"
#: ../gtk/gtkfilechooserdefault.c:2813 ../gtk/gtkfilechooserdefault.c:3699
#: ../gtk/gtkfilechooserdefault.c:2815 ../gtk/gtkfilechooserdefault.c:3701
msgid "Remove the selected bookmark"
msgstr "Odstraní zvolenou záložku"
#: ../gtk/gtkfilechooserdefault.c:3377
#: ../gtk/gtkfilechooserdefault.c:3379
msgid "Remove"
msgstr "Odstranit"
#: ../gtk/gtkfilechooserdefault.c:3386
#: ../gtk/gtkfilechooserdefault.c:3388
msgid "Rename..."
msgstr "Přejmenovat…"
#. Accessible object name for the file chooser's shortcuts pane
#: ../gtk/gtkfilechooserdefault.c:3550
#: ../gtk/gtkfilechooserdefault.c:3552
msgid "Places"
msgstr "Místa"
#. Column header for the file chooser's shortcuts pane
#: ../gtk/gtkfilechooserdefault.c:3607
#: ../gtk/gtkfilechooserdefault.c:3609
msgid "_Places"
msgstr "_Místa"
#: ../gtk/gtkfilechooserdefault.c:3687
#: ../gtk/gtkfilechooserdefault.c:3689
msgid "Add the selected folder to the Bookmarks"
msgstr "Přidá zvolenou složku mezi záložky"
#: ../gtk/gtkfilechooserdefault.c:3948
#: ../gtk/gtkfilechooserdefault.c:3950
msgid "Could not select file"
msgstr "Nelze vybrat soubor"
#: ../gtk/gtkfilechooserdefault.c:4173
#: ../gtk/gtkfilechooserdefault.c:4175
msgid "_Visit this file"
msgstr "Podí_vat se na tento soubor"
#: ../gtk/gtkfilechooserdefault.c:4176
#: ../gtk/gtkfilechooserdefault.c:4178
msgid "_Copy file's location"
msgstr "Kopírovat _umístění souboru"
#: ../gtk/gtkfilechooserdefault.c:4179
#: ../gtk/gtkfilechooserdefault.c:4181
msgid "_Add to Bookmarks"
msgstr "_Přidat mezi záložky"
#: ../gtk/gtkfilechooserdefault.c:4186
#: ../gtk/gtkfilechooserdefault.c:4188
msgid "Show _Hidden Files"
msgstr "Zobrazovat _skryté soubory"
#: ../gtk/gtkfilechooserdefault.c:4189
#: ../gtk/gtkfilechooserdefault.c:4191
msgid "Show _Size Column"
msgstr "Z_obrazovat sloupec Velikost"
#: ../gtk/gtkfilechooserdefault.c:4414
#: ../gtk/gtkfilechooserdefault.c:4416
msgid "Files"
msgstr "Soubory"
#: ../gtk/gtkfilechooserdefault.c:4465
#: ../gtk/gtkfilechooserdefault.c:4467
msgid "Name"
msgstr "Název"
#: ../gtk/gtkfilechooserdefault.c:4488
#: ../gtk/gtkfilechooserdefault.c:4490
msgid "Size"
msgstr "Velikost"
#: ../gtk/gtkfilechooserdefault.c:4502
#: ../gtk/gtkfilechooserdefault.c:4504
msgid "Modified"
msgstr "Změněno"
#. Label
#: ../gtk/gtkfilechooserdefault.c:4595
#: ../gtk/gtkfilechooserdefault.c:4597
msgid "_Name:"
msgstr "_Název:"
#: ../gtk/gtkfilechooserdefault.c:4826
#: ../gtk/gtkfilechooserdefault.c:4828
msgid "Type a file name"
msgstr "Zadání názvu souboru"
#: ../gtk/gtkfilechooserdefault.c:4873 ../gtk/gtkfilechooserdefault.c:4884
#: ../gtk/gtkfilechooserdefault.c:4875 ../gtk/gtkfilechooserdefault.c:4886
msgid "Please select a folder below"
msgstr "Vyberte prosím složku níže"
#: ../gtk/gtkfilechooserdefault.c:4879
#: ../gtk/gtkfilechooserdefault.c:4881
msgid "Please type a file name"
msgstr "Zadejte prosím název souboru"
#. Create Folder
#: ../gtk/gtkfilechooserdefault.c:4950
#: ../gtk/gtkfilechooserdefault.c:4952
msgid "Create Fo_lder"
msgstr "V_ytvořit složku"
#: ../gtk/gtkfilechooserdefault.c:4998
#: ../gtk/gtkfilechooserdefault.c:5000
msgid "Search:"
msgstr "Hledat:"
#: ../gtk/gtkfilechooserdefault.c:5049
#: ../gtk/gtkfilechooserdefault.c:5051
msgid "_Location:"
msgstr "_Umístění:"
#: ../gtk/gtkfilechooserdefault.c:5500
#: ../gtk/gtkfilechooserdefault.c:5502
msgid "Save in _folder:"
msgstr "U_ložit do složky:"
#: ../gtk/gtkfilechooserdefault.c:5502
#: ../gtk/gtkfilechooserdefault.c:5504
msgid "Create in _folder:"
msgstr "Vytvořit ve složc_e:"
#: ../gtk/gtkfilechooserdefault.c:6589
#: ../gtk/gtkfilechooserdefault.c:6591
#, c-format
msgid "Could not read the contents of %s"
msgstr "Nelze přečíst obsah %s"
#: ../gtk/gtkfilechooserdefault.c:6593
#: ../gtk/gtkfilechooserdefault.c:6595
msgid "Could not read the contents of the folder"
msgstr "Nelze přečíst obsah složky"
#: ../gtk/gtkfilechooserdefault.c:6686 ../gtk/gtkfilechooserdefault.c:6754
#: ../gtk/gtkfilechooserdefault.c:6934
#: ../gtk/gtkfilechooserdefault.c:6688 ../gtk/gtkfilechooserdefault.c:6756
#: ../gtk/gtkfilechooserdefault.c:6936
msgid "Unknown"
msgstr "Neznámé"
#: ../gtk/gtkfilechooserdefault.c:6701
#: ../gtk/gtkfilechooserdefault.c:6703
msgid "%H:%M"
msgstr "%H:%M"
#: ../gtk/gtkfilechooserdefault.c:6703
#: ../gtk/gtkfilechooserdefault.c:6705
msgid "Yesterday at %H:%M"
msgstr "Včera v %H:%M"
#: ../gtk/gtkfilechooserdefault.c:7405
#: ../gtk/gtkfilechooserdefault.c:7407
msgid "Cannot change to folder because it is not local"
msgstr "Nelze přejít do složky, protože není místní"
#: ../gtk/gtkfilechooserdefault.c:8009 ../gtk/gtkfilechooserdefault.c:8030
#: ../gtk/gtkfilechooserdefault.c:8014 ../gtk/gtkfilechooserdefault.c:8035
#, c-format
msgid "Shortcut %s already exists"
msgstr "Zkratka %s již existuje"
#: ../gtk/gtkfilechooserdefault.c:8120
#: ../gtk/gtkfilechooserdefault.c:8125
#, c-format
msgid "Shortcut %s does not exist"
msgstr "Zkratka %s neexistuje"
#: ../gtk/gtkfilechooserdefault.c:8366 ../gtk/gtkprintunixdialog.c:548
#: ../gtk/gtkfilechooserdefault.c:8371 ../gtk/gtkprintunixdialog.c:548
#, c-format
msgid "A file named \"%s\" already exists. Do you want to replace it?"
msgstr "Soubor nazvaný „%s“ již existuje. Chcete jej nahradit?"
#: ../gtk/gtkfilechooserdefault.c:8369 ../gtk/gtkprintunixdialog.c:552
#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:552
#, c-format
msgid ""
"The file already exists in \"%s\". Replacing it will overwrite its contents."
msgstr "V „%s“ již tento soubor existuje. Jeho nahrazení přepíše celý obsah."
#: ../gtk/gtkfilechooserdefault.c:8374 ../gtk/gtkprintunixdialog.c:559
#: ../gtk/gtkfilechooserdefault.c:8379 ../gtk/gtkprintunixdialog.c:559
msgid "_Replace"
msgstr "Na_hradit"
#: ../gtk/gtkfilechooserdefault.c:9181
#: ../gtk/gtkfilechooserdefault.c:9186
msgid "Could not start the search process"
msgstr "Nelze spustit proces hledání"
#: ../gtk/gtkfilechooserdefault.c:9182
#: ../gtk/gtkfilechooserdefault.c:9187
msgid ""
"The program was not able to create a connection to the indexer daemon. "
"Please make sure it is running."
@@ -1703,11 +1704,11 @@ msgstr ""
"Program nebyl schopen vytvořit spojení s indexovacím démonem. Ujistěte se "
"prosím, že běží."
#: ../gtk/gtkfilechooserdefault.c:9196
#: ../gtk/gtkfilechooserdefault.c:9201
msgid "Could not send the search request"
msgstr "Nelze odeslat vyhledávací požadavek"
#: ../gtk/gtkfilechooserdefault.c:9806
#: ../gtk/gtkfilechooserdefault.c:9811
#, c-format
msgid "Could not mount %s"
msgstr "Nelze připojit %s"
@@ -1786,13 +1787,13 @@ msgstr "_Otevřít odkaz"
msgid "Copy _Link Address"
msgstr "Ko_pírovat adresu odkazu"
#: ../gtk/gtk-launch.c:69
#: ../gtk/gtk-launch.c:73
msgid "APPLICATION [URI...] - launch an APPLICATION with URI."
msgstr "APLIKACE [URI...] - spustit APLIKACI s URI."
#. Translators: this message will appear after the usage string
#. and before the list of options.
#: ../gtk/gtk-launch.c:73
#: ../gtk/gtk-launch.c:77
msgid ""
"Launch specified application by its desktop file info\n"
"optionally passing list of URIs as arguments."
@@ -1800,36 +1801,39 @@ msgstr ""
"Spustit zadanou aplikaci s informacemi ze souboru desktop,\n"
"volitelně předat seznam URI jako argumenty."
#: ../gtk/gtk-launch.c:85
#: ../gtk/gtk-launch.c:89
#, c-format
#| msgid "Error parsing option --gdk-debug"
msgid "Error parsing commandline options: %s\n"
msgstr "Chyba při analýze voleb příkazové řádky: %s\n"
#: ../gtk/gtk-launch.c:87 ../gtk/gtk-launch.c:100
#: ../gtk/gtk-launch.c:91 ../gtk/gtk-launch.c:104
#, c-format
msgid "Try \"%s --help\" for more information."
msgstr "Více informací viz \"%s --help\"."
msgstr "Více informací viz %s --help."
#. Translators: the %s is the program name. This error message
#. means the user is calling gtk-launch without any argument.
#: ../gtk/gtk-launch.c:98
#: ../gtk/gtk-launch.c:102
#, c-format
#| msgid "Find applications online"
msgid "%s: missing application name"
msgstr "%s: chybí název aplikace"
#: ../gtk/gtk-launch.c:123
#, c-format
msgid "Creating AppInfo from id not supported on non unix operating systems"
msgstr ""
"Vytvoření AppInfo z ID není podporováno na jiných než unixových systémech"
#. Translators: the first %s is the program name, the second one
#. is the application name.
#: ../gtk/gtk-launch.c:122
#: ../gtk/gtk-launch.c:131
#, c-format
#| msgid "Could not run application"
msgid "%s: no such application %s"
msgstr "%s: neexistuje žádná aplikace s názvem %s"
#. Translators: the first %s is the program name, the second one
#. is the error message.
#: ../gtk/gtk-launch.c:140
#: ../gtk/gtk-launch.c:149
#, c-format
msgid "%s: error launching application: %s\n"
msgstr "%s: chyba při spouštění aplikace: %s\n"
@@ -1875,27 +1879,27 @@ msgstr ""
"Kontaktujte prosím správce systému"
#. Description of --gtk-module=MODULES in --help output
#: ../gtk/gtkmain.c:446
#: ../gtk/gtkmain.c:447
msgid "Load additional GTK+ modules"
msgstr "Načte přídavné moduly GTK+"
#. Placeholder in --gtk-module=MODULES in --help output
#: ../gtk/gtkmain.c:447
#: ../gtk/gtkmain.c:448
msgid "MODULES"
msgstr "MODULY"
#. Description of --g-fatal-warnings in --help output
#: ../gtk/gtkmain.c:449
#: ../gtk/gtkmain.c:450
msgid "Make all warnings fatal"
msgstr "Učiní všechna varování kritickými"
#. Description of --gtk-debug=FLAGS in --help output
#: ../gtk/gtkmain.c:452
#: ../gtk/gtkmain.c:453
msgid "GTK+ debugging flags to set"
msgstr "Ladicí příznaky GTK+, které nastaví"
#. Description of --gtk-no-debug=FLAGS in --help output
#: ../gtk/gtkmain.c:455
#: ../gtk/gtkmain.c:456
msgid "GTK+ debugging flags to unset"
msgstr "Ladicí příznaky GTK+, jejichž nastavení zruší"
@@ -1904,20 +1908,20 @@ msgstr "Ladicí příznaky GTK+, jejichž nastavení zruší"
#. * Do *not* translate it to "predefinito:LTR", if it
#. * it isn't default:LTR or default:RTL it will not work
#.
#: ../gtk/gtkmain.c:707
#: ../gtk/gtkmain.c:704
msgid "default:LTR"
msgstr "default:LTR"
#: ../gtk/gtkmain.c:775
#: ../gtk/gtkmain.c:772
#, c-format
msgid "Cannot open display: %s"
msgstr "Nelze otevřít displej: %s"
#: ../gtk/gtkmain.c:841
#: ../gtk/gtkmain.c:838
msgid "GTK+ Options"
msgstr "Přepínače GTK+"
#: ../gtk/gtkmain.c:841
#: ../gtk/gtkmain.c:838
msgid "Show GTK+ Options"
msgstr "Zobrazit přepínače GTK+"
@@ -1926,12 +1930,10 @@ msgid "Co_nnect"
msgstr "_Připojit"
#: ../gtk/gtkmountoperation.c:609
#| msgid "Co_nnect"
msgid "Connect As"
msgstr "Připojit se jako"
#: ../gtk/gtkmountoperation.c:618
#| msgid "Connect _anonymously"
msgid "_Anonymous"
msgstr "_Anonymní"
@@ -1940,17 +1942,14 @@ msgid "Registered U_ser"
msgstr "Regi_strovaný uživatel"
#: ../gtk/gtkmountoperation.c:638
#| msgid "_Username:"
msgid "_Username"
msgstr "_Uživatelské jméno"
#: ../gtk/gtkmountoperation.c:643
#| msgid "_Domain:"
msgid "_Domain"
msgstr "_Doména"
#: ../gtk/gtkmountoperation.c:649
#| msgid "_Password:"
msgid "_Password"
msgstr "_Heslo"
@@ -2010,7 +2009,7 @@ msgstr "Z Shell"
msgid "Cannot end process with PID %d: %s"
msgstr "Nelze ukončit proces s PID %d: %s"
#: ../gtk/gtknotebook.c:5051 ../gtk/gtknotebook.c:7705
#: ../gtk/gtknotebook.c:5053 ../gtk/gtknotebook.c:7707
#, c-format
msgid "Page %u"
msgstr "Strana %u"
@@ -2018,14 +2017,14 @@ msgstr "Strana %u"
#. Translators: the format here is used to build the string that will be rendered
#. * in the number emblem.
#.
#: ../gtk/gtknumerableicon.c:481
#: ../gtk/gtknumerableicon.c:482
#, c-format
msgctxt "Number format"
msgid "%d"
msgstr "%d"
#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:846
#: ../gtk/gtkpapersize.c:886
#: ../gtk/gtkpagesetup.c:646 ../gtk/gtkpapersize.c:848
#: ../gtk/gtkpapersize.c:888
msgid "Not a valid page setup file"
msgstr "Neplatný soubor vzhledu stránky"
@@ -2084,12 +2083,11 @@ msgstr "Dolů v cestě"
msgid "File System Root"
msgstr "Kořen systému souborů"
#: ../gtk/gtkprintbackend.c:748
#: ../gtk/gtkprintbackend.c:750
msgid "Authentication"
msgstr "Ověření"
#: ../gtk/gtkprinteroptionwidget.c:546
#| msgid "Select a File"
msgid "Select a filename"
msgstr "Vyberte soubor"
@@ -2314,42 +2312,42 @@ msgstr "Obecné"
#. * multiple pages on a sheet when printing
#.
#: ../gtk/gtkprintunixdialog.c:3058
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692
msgid "Left to right, top to bottom"
msgstr "Zleva doprava, shora dolů"
#: ../gtk/gtkprintunixdialog.c:3058
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692
msgid "Left to right, bottom to top"
msgstr "Zleva doprava, zdola nahoru"
#: ../gtk/gtkprintunixdialog.c:3059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693
msgid "Right to left, top to bottom"
msgstr "Zprava doleva, shora dolů"
#: ../gtk/gtkprintunixdialog.c:3059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693
msgid "Right to left, bottom to top"
msgstr "Zprava doleva, zdola nahoru"
#: ../gtk/gtkprintunixdialog.c:3060
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694
msgid "Top to bottom, left to right"
msgstr "Shora dolů, zleva doprava"
#: ../gtk/gtkprintunixdialog.c:3060
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694
msgid "Top to bottom, right to left"
msgstr "Shora dolů, zprava doleva"
#: ../gtk/gtkprintunixdialog.c:3061
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695
msgid "Bottom to top, left to right"
msgstr "Zdola nahoru, zleva doprava"
#: ../gtk/gtkprintunixdialog.c:3061
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695
msgid "Bottom to top, right to left"
msgstr "Zdola nahoru, zprava doleva"
@@ -2357,7 +2355,7 @@ msgstr "Zdola nahoru, zprava doleva"
#. * dialog that controls in what order multiple pages are arranged
#.
#: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
msgid "Page Ordering"
msgstr "Řazení stran"
@@ -3341,7 +3339,7 @@ msgstr "Neočekávaná počáteční značka „%s“ na řádku %d, znak %d"
msgid "Unexpected character data on line %d char %d"
msgstr "Neočekávaná data znaků na řádku %d, znak %d"
#: ../gtk/gtkuimanager.c:2738
#: ../gtk/gtkuimanager.c:2694
msgid "Empty"
msgstr "Prázdný"
@@ -4525,169 +4523,169 @@ msgstr "Pozastaveno ; Úlohy se odmítají"
msgid "Rejecting Jobs"
msgstr "Úlohy se odmítají"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915
msgid "Two Sided"
msgstr "Oboustranný"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916
msgid "Paper Type"
msgstr "Typ papíru"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917
msgid "Paper Source"
msgstr "Zdroj papíru"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918
msgid "Output Tray"
msgstr "Výstupní zásobník"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919
msgid "Resolution"
msgstr "Rozlišení"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920
msgid "GhostScript pre-filtering"
msgstr "Předběžné filtrování GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929
msgid "One Sided"
msgstr "Jednostranný"
#. Translators: this is an option of "Two Sided"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931
msgid "Long Edge (Standard)"
msgstr "Delší okraj (standardní)"
#. Translators: this is an option of "Two Sided"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933
msgid "Short Edge (Flip)"
msgstr "Kratší okraj (otočení)"
#. Translators: this is an option of "Paper Source"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945
msgid "Auto Select"
msgstr "Automatický výběr"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2941
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435
msgid "Printer Default"
msgstr "Výchozí pro tiskárnu"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949
msgid "Embed GhostScript fonts only"
msgstr "Vložit pouze písma GhostScript"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951
msgid "Convert to PS level 1"
msgstr "Převést na PS, úroveň 1"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953
msgid "Convert to PS level 2"
msgstr "Převést na PS, úroveň 2"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955
msgid "No pre-filtering"
msgstr "Bez předběžného filtrování"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2958
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2964
msgid "Miscellaneous"
msgstr "Různé"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "Urgent"
msgstr "Naléhavá"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "High"
msgstr "Vysoká"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "Medium"
msgstr "Střední"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "Low"
msgstr "Nízká"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717
msgid "Job Priority"
msgstr "Priorita úlohy"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728
msgid "Billing Info"
msgstr "Účtovací informace"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "None"
msgstr "Žádné"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Classified"
msgstr "Utajované"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Confidential"
msgstr "Důvěrné"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Secret"
msgstr "Tajné"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Standard"
msgstr "Standardní"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Top Secret"
msgstr "Přísně tajné"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
msgid "Unclassified"
msgstr "Neutajované"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754
msgid "Pages per Sheet"
msgstr "Stran na list"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814
msgid "Before"
msgstr "Před"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829
msgid "After"
msgstr "Za"
@@ -4695,14 +4693,14 @@ msgstr "Za"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849
msgid "Print at"
msgstr "Vytisknout"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3854
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
msgid "Print at time"
msgstr "Vytisknout v určený čas"
@@ -4710,17 +4708,17 @@ msgstr "Vytisknout v určený čas"
#. * size. The two placeholders are replaced with the width and height
#. * in points. E.g: "Custom 230.4x142.9"
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895
#, c-format
msgid "Custom %sx%s"
msgstr "Vlastní %sx%s"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976
msgid "Printer Profile"
msgstr "Profil tiskárny"
#. TRANSLATORS: this is when color profile information is unavailable
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983
msgid "Unavailable"
msgstr "Není k dispozici"
@@ -4741,7 +4739,6 @@ msgid "Unspecified profile"
msgstr "Neurčený profil"
#: ../modules/printbackends/file/gtkprintbackendfile.c:249
#| msgid "output.%s"
msgid "output"
msgstr "výstup"
@@ -4820,12 +4817,3 @@ msgstr "zkušební-výstup.%s"
#: ../modules/printbackends/test/gtkprintbackendtest.c:465
msgid "Print to Test Printer"
msgstr "Tisknout na zkušební tiskárnu"
#~ msgid "Connect as u_ser:"
#~ msgstr "Připojit se jako _uživatel:"
#~ msgid "Select a folder"
#~ msgstr "Vyberte složku"
#~ msgid "_Save in folder:"
#~ msgstr "Uložit do složk_y:"
+316 -792
View File
File diff suppressed because it is too large Load Diff
+180 -175
View File
File diff suppressed because it is too large Load Diff
+186 -180
View File
File diff suppressed because it is too large Load Diff
+1851 -1142
View File
File diff suppressed because it is too large Load Diff
+192 -190
View File
File diff suppressed because it is too large Load Diff
+192 -196
View File
File diff suppressed because it is too large Load Diff
+2513 -2365
View File
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More