Commit Graph

19039 Commits

Author SHA1 Message Date
Alexander Larsson
7ab7ffa542 Automatically flush window when doing non-double-buffered expose
Applications using non-double-buffered drawing using cairo (e.g. Abiword)
can draw directly to the window using cairo and thus manage to avoid
the automatic flushing of outstanding moves. This can cause redraw
inconsistencies like bug 593507.

We fix this by always flushing when exposing non-double-buffered widgets.
2009-09-14 16:07:43 +02:00
Alexander Larsson
cfeba9c389 Make gdk_window_flush public
We need to call this from Gtk+, and its concievable that some other
app doing weird stuff could have a use for it.
2009-09-14 16:07:25 +02:00
Alexander Larsson
f473242e19 Better handling of window hierarchy changes from inside expose handler
If we move, resize or otherwise change a window from inside a (double
buffered)  expose handler we can run into issues with double buffered
paints that have already been ended but have not yet been commited
to the window from the implicit paint pixmap.

For instance, any copies of source regions due to a window scroll need
to take these into account, and any operation that causes some drawing at
a destination covered by the implicit paint region would be overdrawn
when the implicit paint is ended.

So, before we do any window-hierarchy changing operation while an implicit
paint is in effect we flush all moves and already commited paints.
2009-09-14 13:52:40 +02:00
Alexander Larsson
6d84fcab76 Handle expose events moving or resizing windows
When a window is moved or resized from a double-buffered expose handler
we can't really just copy the window region around, as the window
will be overdrawn with the double buffered region when the expose returns.

Instead we remove all regions with outstanding implicit paints from the
region to be copied and just mark this area as invalid to be redrawn
later.

This fixes bug 594880.
2009-09-14 13:52:40 +02:00
Alexander Larsson
2d2dc2c7e9 Factor out impl_window_add_update_area() to a function 2009-09-14 13:52:40 +02:00
Alexander Larsson
130a7743e3 Don't reenter gdk_window_process_updates_internal
Its not correct for recurse gdk_window_process_updates_internal, as
the outer instance will overdraw the inner. So, protect against
gdk_window_process_updates() being called while in an expose
handler.

This shouldn't be a repaint problem, as eventually the idle handler
will cause the updates to be processed.
2009-09-14 13:52:40 +02:00
Alexander Larsson
6716d46393 Bail out of window move/resize early if no change
This is not all that uncommon in size_allocate, so we want
to optimize this case.
2009-09-14 13:52:40 +02:00
Matthias Clasen
f10f6b8b0c Mention thread-safety issues 2009-09-13 23:32:46 -04:00
Matthias Clasen
8f16541d93 Fix gdk_display_beep
Since XBell() seems broken, just call XkbBell().
2009-09-13 23:16:44 -04:00
Kjartan Maraas
618764c1bb Update Norwegian bokmål translation. 2009-09-14 00:22:42 +02:00
Kenneth Nielsen
e7fa16281a Updated Danish translation 2009-09-13 02:52:10 +02:00
Bruce Cowan
93e379818c Updated British English translations 2009-09-12 19:27:38 +01:00
Aron Xu
3ce155580a Updated Simplified Chinese translation. 2009-09-12 23:59:39 +08:00
Aron Xu
1c45f32c9b Updated Simplified translation. 2009-09-12 23:43:04 +08:00
Vincent Untz
83719cbb90 Fix warning about pointer/int confusion
https://bugzilla.gnome.org/show_bug.cgi?id=594679
2009-09-12 13:23:09 +02:00
Ask H. Larsen
63742b3162 Updated Danish translation 2009-09-12 03:20:20 +02:00
Tor Lillqvist
e9f6b93ec1 Parse libtoolize --version more carefully
Some recent versions of libtoolize output a version blurb like:
  libtoolize (GNU libtool 1.3110 2009-07-01) 2.2.7a
Don't get confused by the numbers inside the parens.
2009-09-12 01:29:52 +03:00
Reinout van Schouwen
8c1f50cf14 Updated Dutch translation 2009-09-11 22:36:58 +02:00
Matthias Clasen
24df69b283 Add a note about tooltip limitations
Apparently Windows only shows the first 64 characters of tooltips
on statusicons. Bug 594600.
2009-09-11 12:47:32 -04:00
Kostas Papadimas
f5e2b3f971 Updated Greek translation. 2009-09-11 19:27:03 +03:00
Alexander Larsson
e1554d8466 Don't support the old handling of zero height/width in gdk_window_clear_area
We used to handle zero height/width specially in the non-double buffered
case due to the weird behaviour of XClearArea in this case. However
this is undocumented, incompatible with what happens on double-buffered
drawing, and just not a good API. So, we drop this behaviour, having
fixed gtkclist.c which used this.
2009-09-11 15:21:43 +02:00
Alexander Larsson
0df4283574 Don't use magic zero height/width argument to gdk_window_clear_area
This is an undocumented feature that we stopped supporting, and
anyway it likely only ever worked on X anyway.
2009-09-11 15:08:14 +02:00
Ani
0a46d331eb Updated Malayalam Translations 2009-09-11 12:08:06 +05:30
Ani
b4a5c05a25 Updated Malayalam Translations 2009-09-11 12:07:41 +05:30
Mario Blättermann
417776c348 Updated German translation 2009-09-10 21:06:15 +02:00
Matthias Clasen
d497e8ed74 Mention gdk_window_restack
It is probably worth mentioning this function by name, since we've
added it explicitly to easy porting...
2009-09-10 13:53:28 -04:00
Matthias Clasen
d409cf2bf3 Add more hints
Mention problems related to cairo and clipping.
2009-09-10 13:53:28 -04:00
Matthias Clasen
be22a62160 Cleanups
This commit removes dead code, mostly pointed out by clang.
2009-09-10 13:53:28 -04:00
Alexander Larsson
7124f5927a Don't send grab broken for implicit grabs on button release
This is how it used to work, you only get grab broken if someone
else gets a grab, or if the grabbed window gets destroyed or unmapped.
2009-09-10 19:27:45 +02:00
Alexander Larsson
c4d2c38238 Ensure recursing gdk_window_process_all_updates works
There are two issues here. First of all an ignored update didn't
use to unset update_idle which could cause all further idle repaints
to be ignored. (Bug #591583)

Secondly, if we ignore the process_all_updates we may end up not updating
the windows in update_windows unless something else triggers an update.
So, we handle this by checking for recursions and scheduling a new update
at the end of the outermost process_all_updates.
2009-09-10 13:56:54 +02:00
Gintautas Miliauskas
81334f3f96 Updated Lithuanian translation. 2009-09-10 13:46:13 +03:00
Bastien Nocera
b1d1e36855 Keysyms docs update
Mention XK_ prefixes as well.
2009-09-10 10:18:29 +01:00
Bastien Nocera
4ccd47f47e Avoid duplicate keysyms, ignore mispelled one
GDK_Select and GDK_Clear were duplicated, GDK_Calculater is
only useful for compulsive misspellers.
2009-09-10 10:16:44 +01:00
Sweta Kothari
43fbf646a8 Updated Gujarati Translations 2009-09-10 14:20:08 +05:30
Sweta Kothari
514742ac59 Updated Gujarati Translations 2009-09-10 12:57:02 +05:30
Kristian Rietveld
fef3c88e89 Unbreak GtkComboBox::button-sensitivity
Fixed the button-sensivity patch done to GtkComboBox to account for
changes in appearance (changes to the appears-as-list style property).
Also, in list-mode, the event box that has been created below the cell
view also needs to have its sensitivity updated.
2009-09-09 21:30:13 +02:00
Bastien Nocera
11898088a1 Bug 594668 - Add new Xorg keysyms
Add support for XF86keysym.h to gdkkeysyms-update.pl and
update the generated gdkkeysyms.h file for the latest sources.
2009-09-09 18:45:28 +01:00
Matthias Clasen
3dd459caea Accept "true" as a true value in printer settings
Some of the settings come directly from cups config files, which
have no case sensitivity requirement, so we should not be more
picky.  Bug 594652.
2009-09-09 11:52:07 -04:00
Matthias Clasen
aa9bb7d8e4 Deprecate gdk_event_get_graphics exposes
This function is only used in deprecated, broken widgets. Also,
fix up some of its implmentation that clang was complaining about.
2009-09-09 09:00:15 -04:00
Matthias Clasen
ebf73f4096 Remove a dead assignment
Pointed out by clang.
2009-09-09 00:53:32 -04:00
Matthias Clasen
d01dc74a85 Remove a dead assignment
Pointed out by clang.
2009-09-09 00:52:01 -04:00
Matthias Clasen
0ea5787fca Fix a typo 2009-09-09 00:03:15 -04:00
Matthias Clasen
308fade38c Make the custom paper size dialog not block the main dialog
This was causing problems in gedit, which uses window groups.
Bug 593678.
2009-09-09 00:03:14 -04:00
Kristian Rietveld
16c5339ea8 Don't access the parent level, there might not be one
Use the index instead, that can be -1.  A unit test has been added as
well.
2009-09-08 15:52:18 +02:00
Alexander Larsson
113d21801b Fix handling of window cursor wrt grabs
Even for grabs we need to recurse up to look for what cursor to use.
2009-09-08 11:48:20 +02:00
Paolo Borelli
4e78b4c7d1 One more unit test 2009-09-07 11:17:49 +02:00
Paolo Borelli
04a58d8757 Simple expander unit test 2009-09-07 09:14:21 +02:00
Kristian Rietveld
f77042aae2 Avoid recursive calls to gtk_tree_view_top_row_to_dy()
Commit 3f306a4042 made it possible for
gtk_tree_view_top_row_to_dy() to be called recursively.  (In a different
way than was already guarded for).  This caused a single test case in
the scrolling test suite to fail.  We now also guard for recursive calls at
the beginning of gtk_tree_view_top_row_to_dy().
2009-09-06 20:26:09 +02:00
Tomasz Dominikowski
3d3f8697c0 Updated Polish translation 2009-09-06 14:29:50 +02:00
Kristian Rietveld
a59c39f370 Bug 346800 - Rework sort/filter models to use indices to parents...
Rework the sort and filter models to store their reference to the parent
element as an array index instead of a pointer to an array element.
These pointers could become invalid with any array modification, whereas
indices do not.
2009-09-06 14:12:46 +02:00