Mon Feb 27 14:52:50 2006 Tim Janik <timj@imendio.com>
* gdkevents-x11.c:
* gdksettings.c: moved and renamed the gdk_settings_names and
gdk_settings_map.
* gdk/x11/checksettings.c: test program for the gdk_settings_map array.
* gdk/x11/Makefile.am: run checksettings as part of make check.
Sat Feb 25 10:35:23 PST 2006 Michael Emmel <mike.emmel@gmail.com>
*gdk/directfb/gdkdisplay-directfb.c
*gdk/directfb/gdkwindow-directfb.c
Added stubs for shape window functions to fix compile problems
Thu Feb 23 13:28:21 2006 Tim Janik <timj@imendio.com>
* gdk/x11/gdkim-x11.c (_gdk_x11_initialize_locale): remove unconditional
warnings about missing X locale support. Gdk properly handles this
situation anyway.
2006-02-21 Anders Carlsson <andersca@imendio.com>
* gdk/quartz/gdkselection-quartz.c:
(make_list):
(gdk_text_property_to_utf8_list_for_display):
Add these from the win32 backend.
2006-02-20 Matthias Clasen <mclasen@redhat.com>
* gdk/gdkgc.c (_gdk_gc_update_context): Obtain the
background color from the gc when it is needed. (#331820)
2006-02-19 Matthias Clasen <mclasen@redhat.com>
* gdk/gdkgc.c (_gdk_gc_update_context): Add a gc_changed
argument, and avoid setting the clip region if the gc
has not changed.
* gdk/gdkgc.c: Update all callers.
* gdk/gdkpango.c (get_cairo_context): Avoid updating the
context if nothing changed.
2006-02-20 Anders Carlsson <andersca@mac.com>
* gdk/quartz/gdkevents-quartz.c:
(get_keyboard_modifiers_from_nsevent):
Fix typo so ctrl gets passed on to the gdk event.
* gdk/quartz/gdkproperty-quartz.c:
(gdk_atom_name):
g_strdup the atom name.
2006-02-20 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c (do_shape_combine_region): New
function. Factor out code from gdk_window_shape_combine_mask().
(gdk_window_shape_combine_region): Actually do something. Convert
region to a HRGN and call do_shape_combine_region().
(gdk_window_input_shape_combine_mask)
(gdk_window_input_shape_combine_region)
(gdk_window_set_child_input_shapes)
(gdk_window_merge_child_input_shapes): New functions, dummy
implementations.
2006-02-20 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): adding boolean
have_shapes and have_input_shapes members fixes the build.
2006-02-19 Matthias Clasen <mclasen@redhat.com>
Support input shapes: (#331070)
* gdk/gdk.symbols:
* gdk/gdkdisplay.h:
* gdk/gdkwindow.h:
* gdk/x11/gdkdisplay-x11.c (gdk_display_supports_shapes)
(gdk_display_supports_input_shapes): Functions to determine
if a display supports shaped windows or input shapes.
* gdk/x11/gdkwindow-x11.c (gdk_window_input_shape_combine_region):
(gdk_window_input_shape_combine_mask):
(gdk_window_set_child_input_shapes):
(gdk_window_merge_child_input_shapes): Input shape versions
of the window shape API.
* gtk/gtk.symbols:
* gtk/gtkwidget.h:
* gtk/gtkwidget.c (gtk_widget_input_shape_combine_mask):
New function to set an input shape on a widget.
2006-02-17 Matthias Clasen <mclasen@redhat.com>
* gdk/gdkregion-generic.c (gdk_region_union_with_rect):
Be robust and reject rectangles with negative width or
height. (#331467, Benjamin Berg)
2006-02-09 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkevents-win32.c (gdk_event_translate)
<WM_MOUSELEAVE>: If we don't know where we went, and have
generated a leave event, set current_window to the root
window. This assures we will generate proper enter and leave
events for popup windows. (#325521)
2006-02-08 John Ehresman <jpe@wingware.com>
* gdk/win32/gdkwindow-win32.c: Let gdk_window_set_decorations()
take precedence over anything derived from hints. Restructure
related code and logic, add some new helper functions. (#327217)
2006-02-08 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkevents-win32.c (gdk_pointer_grab)
(gdk_display_pointer_ungrab, gdk_keyboard_grab)
(gdk_display_keyboard_ungrab): Consistenly use assign_object()
when assigning GdkWindow pointers so that the ref counting doesn't
get off whack.
(handle_stuff_while_moving_or_resizing): Don't use deprecated API.
(gdk_event_translate) <WM_MOUSEMOVE>: When the pointer is grabbed
with owner_events FALSE, generate enter and leave events only for
the grab window. (#321054)
2006-02-03 Federico Mena Quintero <federico@ximian.com>
Work around https://bugs.freedesktop.org/show_bug.cgi?id=4320,
which used to be our own
http://bugzilla.gnome.org/show_bug.cgi?id=314616. If one uses a
pixmap for a pattern in Cairo, and sets the pattern to
CAIRO_EXTEND_REPEAT; and if the destination surface is also a
pixmap, Cairo does a slow copy instead of using XCopyArea(). So,
we use the same code that we used in GTK+ 2.6 (pre-cairo), by
filling the double-buffer pixmap with a tiled GC and
XFillRectangle().
* gdk/gdkwindow.c (BackingRectMethod): New structure with a
cairo_t and a GdkGC field. Depending on which of these fields
gets filled in, we'll use Cairo or GDK to clear the double-buffer
pixmap when painting a window.
(setup_backing_rect_method): Fill a BackingRectMethod as
appropriate, depending on the window's configuration and our
knowledge of whether Cairo is fast or slow when doing repeating
patterns.
(gdk_window_clear_backing_rect): Call
setup_backing_rect_method(). Depending on what it returns, use
Cairo to clear the double-buffer pixmap, or plain GDK.
2006-02-02 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkdnd-x11.c (_gdk_drag_get_protocol_for_display):
Make drops on the root window work again. (#145243, Andrew S. Dixon)
2006-01-28 Behdad Esfahbod <behdad@gnome.org>
* configure.in: If major.minor of required and available glib versions
are the same, add -DG_DISABLE_DEPRECATED to GLIB_CFLAGS. (bug #328617)
* */Makefile.am: Remove hardcoded -DG_DISABLE_DEPRECATED.
2006-01-25 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkcursor-x11.c (gdk_x11_display_set_cursor_theme): Only
set the cursor size if it is != 0.
* gtk/gtksettings.c (gtk_settings_class_init): Change the default value
of gtk-cursor-theme-size to 0, meaning "use default".
2006-01-19 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkprivate-x11.h (XID_FONT_BIT):
* gdk/x11/gdkfont-x11.c:
* gdk/x11/gdkxid.c: Use an unused high bit in the
XID to mark fonts in the global xid hash table.
* gdk/x11/gdkcursor-x11.c (update_cursor): Skip fonts
when iterating over the xid hash table, since calling
GDK_IS_WINDOW () on an GdkFont can cause a segfault.
(#327751, Ryan Lortie)
2006-01-18 Anders Carlsson <andersca@imendio.com>
* gdk/quartz/gdkevents-quartz.c:
(get_mm_from_pixels):
(gdk_screen_get_width_mm):
(gdk_screen_get_height_mm):
Implement these functions.
(#327228, Thomas Broyer).
2006-01-18 Anders Carlsson <andersca@imendio.com>
* gdk/quartz/gdkdrawable-quartz.c:
(gdk_quartz_draw_polygon):
(gdk_quartz_draw_lines):
Implement these functions.
(#327226, Thomas Broyer)
2006-01-18 Anders Carlsson <andersca@imendio.com>
* gdk/quartz/gdkkeys-quartz.c:
(maybe_update_keymap):
Support non-MacRoman keyboard layouts.
(#322585, Wolfgang Thaller)
2006-01-18 Anders Carlsson <andersca@imendio.com>
* gdk/quartz/gdkmain-quartz.c:
(_gdk_windowing_init):
Make the process a foreground application.
(#322481, Wolfgang Thaller)
2006-01-12 Michael Natterer <mitch@imendio.com>
* gdk/gdkimage.c (scratch_image_info_for_depth): connect to the
display's "closed" signal and free the cached scratch images upon
display closing (bug #85715).
2006-01-11 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.c (create_moveresize_window): Clean
up properly if the grab fails.
(finish_drag): Don't leak a reference to moveresize_window
here.
2006-01-11 Matthias Clasen <mclasen@redhat.com>
Allow falling back to another icon theme before
hicolor. (#325546, Rodney Dawes)
* gtk/gtksettings.c: Add a gtk-fallback-icon-theme setting.
* gdk/x11/gdkevents-x11.c: Map it to the XSetting Net/FallbackIconTheme.
* gtk/gtkicontheme.c: Consult the fallback icon theme before
looking in hicolor.
2006-01-10 Michael Natterer <mitch@imendio.com>
* gdk/gdkpango.c (on_renderer_display_closed): disconnect from the
right object ("closed" is emitted by the display, not the screen).
(bug #85715)
2006-01-08 Matthias Clasen <mclasen@redhat.com>
* gdk/gdkregion-generic.c (miRegionCopy): Fix this for the
single-rectangle case. (#326127, Benjamin Berg)
(gdk_region_copy): Use miRegionCopy() here.
2006-01-05 Hans Breuer <hans@breuer.org>
* gdk/makefile.msc : also recurse into win32 for ::clean
* gtk/makefile.msc.in : create gtkbuiltincache.h (most code
to simulate links) and file renames
2006-01-02 Anders Carlsson <andersca@imendio.com>
* gdk/quartz/GdkQuartzWindow.c:
(-[GdkQuartzWindow canBecomeMainWindow]):
(-[GdkQuartzWindow canBecomeKeyWindow]):
Have these return TRUE
* gdk/quartz/gdkevents-quartz.c:
(pointer_grab_internal):
Remove FIXME
(find_child_window_by_point_helper):
Fix bug in offset calculation
(find_window_for_event):
Use grab window toplevel when a grab is in effect
(gdk_event_translate):
Don't call _gdk_event_button_generate on mouse up
* gdk/quartz/gdkgc-quartz.c:
(_gdk_quartz_gc_new):
Fix indentation
* gdk/quartz/gdkwindow-quartz.c:
(gdk_window_new):
Make TEMP windows borderless
(gdk_window_hide):
Hide window
(gdk_window_get_origin):
Implement
2006-01-02 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c
(gdk_window_impl_win32_get_visible_region): Make identical to the
X11 implementation. (#322264, John Ehresman)
2006-01-02 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkgeometry-win32.c (gdk_window_scroll): Get the
invalidated region from ScrollWindowEx() instead of an incorrect
attempt to calculate it ourselves. Fix by John Ehresman. (#323666)
* gdkevents-win32.c: Make _gdk_win32_hrgn_to_region() non-static.
* gdkprivate-win32.h: Declare it.
2005-12-21 Matthias Clasen <mclasen@redhat.com>
* gdk/gdkregion-generic.c: Use the slice allocator
for regions. Still todo: avoid extra allocations for
the single-rectangle case.
2005-12-05 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkevents-x11.c: map the new GtkSettings properties
"timeout-initial", "timeout-repeat", "color-scheme" and
"enable-enimations" to X settings.
2005-11-28 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_urgency_hint):
Implement the conditional use of FlashWindowEx() properly for MSVC
compilations. The code was confusingly assuming that if compiled
with a "new" compiler, it will only be run on "new" Windows
versions. We want it to run on "old" versions, too, even if
compiled with a "new" compiler. There are two orthogonal issues:
whether the compiler defines the necessary API in its headers, and
whether it is present at run-time. (#318077)
2005-11-27 Tor Lillqvist <tml@novell.com>
Once again rework Win32 window decoration code. Doesn't break
#104514. The dialogs in gtk-demo now have the same decorations and
behaviour as on X11. Tried to fix#322516 but it seems very hard
to make the trivial sample program there behave as expected. OTOH,
simply moving the gtk_window_decorate() call in the #322516 sample
program after the call to gtk_widget_show() helps...
* gdk/win32/gdkwindow-win32.c (set_or_clear_style_bits): Revert to
the correct semantics. Each call to gdk_window_set_decorations()
which calls this function is supposed to affect all decorations.
(decorate_based_on_hints): New function, looks at both geometry
hints and type hint and sets window decorations based on
that. Consolidate code from gdk_window_set_geometry_hints() and
gdk_window_set_type_hint() here.
(gdk_window_set_geometry_hints, gdk_window_set_type_hint): Call
decorate_based_on_hints().
2005-11-16 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkevents-x11.c (_gdk_events_uninit): new internal
function which destroys the display's event source. Also removes
the source from the global display_sources list and unrefs it.
* gdk/x11/gdkprivate-x11.h: declare the function.
* gdk/x11/gdkdisplay-x11.c (gdk_display_x11_dispose): call it
instead of half-destroying the source here.
2005-11-15 Michael Natterer <mitch@imendio.com>
* gdk/x11/gdkdisplay-x11.c (gdk_display_x11_finalize): destroy
display->xid_ht as late as possible (right before XCloseDisplay)
because it still needs to be around when the display's screens are
finalized. (#85715)
2005-11-10 Matthias Clasen <mclasen@redhat.com>
Don't corrupt odd keymaps (#316638, Kean Johnston)
* gdk/x11/gdkkeys-x11.c (set_symbol): Auxiliary function to
handle frobbing keymaps with odd numbers of syms/code.
* gdk/x11/gdkkeys-x11.c (update_keymaps): Use set_symbol() to
frob the keymap.
2005-11-10 Michael Natterer <mitch@imendio.com>
Applied patch from maemo-gtk that addresses many issues wrt
display migration and display closing (bug #85715).
* gdk/gdkdisplay.c (gdk_display_dispose): don't just set the
default display to NULL when it's closed. Instead set the most
recently opened display as new default (if one exists).
* gdk/gdkpango.c (on_renderer_display_closed): fixed signature
of this callback.
* gdk/gdkscreen.c (gdk_screen_dispose): check if the GCs still
exist before unrefing them.
* gdk/gdkwindow.c (_gdk_window_destroy_hierarchy): if the screen
is closed, allow destruction of the root window.
* gdk/x11/gdkdisplay-x11.c: moved some stuff from finalize() to
dispose(), free stuff that was leaked before.
* gdk/x11/gdkevents-x11.c (_gdk_x11_events_uninit_screen): check if
the xsettings_client still exists before destroying it.
* gdk/x11/gdkkeys-x11.c: added finalization and free the allocated
X resources.
* gdk/x11/gdkpixmap-x11.c: moved stuff from finalize() to new
dispose() implementation.
* gdk/x11/gdkscreen-x11.c: moved stuff from finalize() to
dispose() and check if it still exists before unrefing it. Set
their pointers to NULL/None *after* upchaining in dispose(),
because X11 implementations of members of the parent class still
need them for their own destruction.
* gdk/x11/gdkvisual-x11.c: removed finalize() implementation which
was g_error()ing when finalizing a visual.
* gtk/gtkclipboard.c (gtk_clipboard_finalize): don't use
get_clipboard_widget() because it would create the widget if it
doesn't exist. Use g_object_get_data() directly instead.
* gtk/gtktextdisplay.c (on_renderer_display_closed): fixed signature
of this callback.
2005-11-09 Tor Lillqvist <tml@novell.com>
* gdk/gdkinternals.h
* gdk/gdk.c (gdk_debug_keys[]): Add new GDK_DEBUG_DRAW flag to
the GdkDebugFlag enum.
* gdk/win32/gdkdrawable-win32.c: Use DRAW to trigger GDK_NOTEs in
this file instead of MISC. Now asking for MISC will give mainly
window manipulation debugging output.
2005-11-09 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c: Remove unnecessary includes.
(_gdk_win32_get_adjusted_client_rect): Remove this two-line
function which was used only in one place.
(get_outer_rect): Use _gdk_win32_adjust_client_rect().
(gdk_window_set_geometry_hints): If we have identical minimum and
maximum size hints, remove the resize and maximize
decorations/functions. (#104514)
If we have a maximum size hint, remove the maximize
decoration/function but ensure the resize decoration/function is
available. Otherwise ensure both resize and maximize
decorations/functions are there.
(set_or_clear_style_bits): Factored out common code from
gdk_window_set_decorations() and gdk_window_set_functions().
Hack the window style setting once more: Only touch the window
style bits corresponding to the GdkWMDecoration or GdkWMFunction
parameter bitmasks. Hopefully this finally is the correct thing to
do. We used to clear all other bits than those that were being
set, or set all other bits than those that were being cleared.
Take into account that adding or removing decorations leaves the
window's outer size unchanged, i.e., the client area's size and
position change. This is apparently not what we want, so change
also the window's (outer) position and size appropriately so that
the client area's position and size stay constant.
gtk-demo's color selector dialog is now non-resizable like on X11
(I tested with metacity in GNOME). Torn off menus are shrinkable
vertically but have a maximum size, and are not maximizable or
minimizable, like on X11.
(gdk_window_set_decorations, gdk_window_set_functions): Let
set_or_clear_decorations() do most of the job.
* gdk/win32/gdkprivate-win32.h: Remove declaration of
_gdk_win32_get_adjusted_client_rect().
2005-11-09 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.h (struct _GdkWindowImplWin32)
* gdk/win32/gdkwindow-win32.c (gdk_window_impl_win32_init,
gdk_window_get_type_hint, gdk_window_get_type_hint): Store the
type hint. Implement gdk_window_get_type_hint() by just returning
the hint stored.
2005-11-09 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_geometry_hints):
Remove code that has been permanently ifdeffed out for two years.
2005-11-08 Matthias Clasen <mclasen@redhat.com>
* gdk/gdkgc.c (gdk_gc_finalize): Unref tile and stipple when
finalizing a gc. (#320789, Nickolay V. Shmyrev)
2005-11-08 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_set_icon_list): Ignore
icons if they would make the request large enough to cause
Xlib to loose the connection. (#320909, Claudio Saavedra)
2005-11-07 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c (pixbuf_to_hbitmaps_normal):
Correct the calculation of maskstride. (#320152, Peter Zelezny)
2005-11-06 Tor Lillqvist <tml@novell.com>
(pixbuf_to_hbitmaps_alpha_winxp): Use an 1-bit mask bitmap,
like pixbuf_to_hbitmaps_normal().
(_gdk_win32_pixbuf_to_hicon_supports_alpha): Check
G_WIN32_IS_NT_BASED() first, so we can pretend being on Win9x by
setting the G_WIN32_PRETEND_WIN9X environment variable.
2005-11-06 Tor Lillqvist <tml@novell.com>
Make icon masks work on Win98 (#320152, Peter Zelezny)
* gdk/win32/gdkcursor-win32.c (create_color_bitmap): Take also a
parameter for the depth of the bitmap, so that this function can
be used to create 1-bit bitmaps, too.
(pixbuf_to_hbitmaps_normal): Create an 1-bit bitmap for the mask,
and initialize it properly.
2005-11-03 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c: As there is only one GdkDisplay in
the Win32 backend, check that GdkDisplay* parameters are equal to
_gdk_display instead of using the unnecessarily general
GDK_IS_DISPLAY().
2005-11-03 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c (pixbuf_to_hbitmaps_alpha_winxp):
Rename the variables for the color bitmap to have "color" in their
name, for similarity with pixbuf_to_hbitmaps_normal(). Create a
color bitmap for the mask, too, instead of creating a b&w bitmap
with CreateBitmap(). Set up the mask bitmap's contents, ones for
those pixels in the color bitmap where the alpha is zero, zero for
other pixels. We used to use an unitialized mask bitmap! This
meant that icons and cursors created presumably worked more or
less by accident. Totally blank icons with zero alpha everywhere
(as used by gtktrayicon.c) definitely did not work as expected.
2005-11-02 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcolor-win32.c
* gdk/win32/gdkscreen-win32.c
* gdk/win32/gdkwindow-win32.c: Whitespace consistency
fixes. Remove superfluous test for GdkWindow* parameters being
non-NULL. Testing GDK_IS_WINDOW() is enough. As there is only one
GdkScreen and one GdkDisplay in the Win32 backend, use those
variables instead of the getter functions. For GdkDisplay* and
GdkScreen* parameters, check that they are equal to the
corresponding singleton variables instead of the more general
GDK_IS_DISPLAY() or GDK_IS_SCREEN().
2005-11-01 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkprivate-win32.h
* gdk/win32/gdkglobals-win32.c
* gdk/win32/gdkmain-win32.c (_gdk_windowing_init): Add more
pre-interned GdkAtoms and pre-registered clipboard formats. Sort
their declarations, definitions and assignments into a more
logical and consistent order.
* gdk/win32/gdkmain-win32.c (_gdk_win32_cf_to_string): Include the
CF_ prefix for the predefined clipboard format names. Put quotes
around registered format names to distinguish them.
* gdk/win32/gdkproperty-win32.c (gdk_property_change): Return
immediately with a warning if the property type is STRING, TEXT,
COMPOUND_TEXT or SAVE_TARGETS, as these are X11-specific that we
should never pretend to handle on Win32. Handle only UTF8_STRING
here, other formats with delayed rendering. Use \uc1 instead of
\uc0 when generating Rich Text Format for easier testability on
XP, where WordPad misinterprets \uc0 encoded characters. Add more
GDK_NOTE debugging output for Clipboard operations.
* gdk/win32/gdkselection-win32.c: Debugging printout improvements.
(gdk_selection_convert): Don't pretent to handle STRING, just
UTF8_STRING. Streamline error handling, don't unnecessarily have a
GError which then isn't used for anything anyway if it gets set.
(gdk_win32_selection_add_targets): Skip also STRING, TEXT,
COMPOUND_TEXT and SAVE_TARGETS in addition to UTF8_STRING.
2005-10-25 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkxftdefaults.c (init_xft_settings): Make the
initialization of screen_x11->xft_rgba more explicit. (#319627,
Bogdan Nicula)
2005-10-24 Matthias Clasen <mclasen@redhat.com>
Add settings to hide the input method and Unicode control character
submenus in the context menus of GtkEntry and GtkTextView.
* gdk/x11/gdkevents-x11.c: Map GTK+ settings to X settings.
* gtk/gtksettings.c (gtk_settings_class_init): Declare GTK+ settings here.
* gtk/gtktextview.c (popup_targets_received):
* gtk/gtkentry.c (popup_targets_received): Use the settings here.
2005-10-14 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkdisplay-win32.c: Remove the clipboard viewer code.
It didn't really do anything useful, and was just confusing and
incomplete. Comments claimed we don't do delayed rendering, but in
fact we do, for images. (The delayed rendering code has other
problems, though, see #168173.) The clipboard viewer code was
probably even buggy (the WM_CHANGECBCHAIN handled didn't propagate
the message when necessary). It was just test code, it said so in
a comment. Add something similar back later if necessary.
(_win32_on_clipboard_change,
_gdk_win32_register_clipboard_notification): Remove.
(gdk_display_supports_selection_notification,
gdk_display_request_selection_notification): Always just return
FALSE. We didn't generate any GDK_OWNER_CHANGE events anywhere.
2005-10-13 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't treat
Alt-Enter specially. It does not have any special meaning and
should be passed on to the application. (#318378, Tim Evans)
2005-10-13 Tor Lillqvist <tml@novell.com>
Set visual depth to 24 for 32 bits-per-pixel devices on
Win32. This allows gdk_drawable_real_draw_pixbuf() to use the
optimized composite_0888() function rather than the slower image
dithering functions to draw pixbufs (#313993, John Ehresman)
* gdk/win32/gdkimage-win32.c (_gdk_win32_new_image): Use
_gdk_windowing_get_bits_for_depth() to initialize
GdkImage::bits_per_pixel.
(_gdk_windowing_get_bits_for_depth): Return 32 bits for depth 24.
* gdk/win32/gdkpixmap-win32.c (gdk_pixmap_new): Use
_gdk_windowing_get_bits_for_depth() to initialize
BITMAPINFOHEADER::biBitCount.
* gdk/win32/gdkvisual-win32.c (_gdk_visual_init): Set
GdkVisual::depth to 24 even if GetDeviceCaps(BITSPIXEL) returns
32.
2005-10-01 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkdrawable-win32.c (blit_from_pixmap): In case
BitBlt() fails with ERROR_INVALID_HANDLE, the most probable cause
is that the the desktop isn't visible because the session has been
switched, the screen is locked, or a terminal server session
disconnected, so no error message necessary. (#137796)
It is of course remotely possible that BitBlt() failing with
ERROR_INVALID_HANDLE might also be caused by some other
problem. We could strive for perfection and track whether the
desktop is visible by using WTSRegisterSessionNotification() and
handling WM_WTSESSION_CHANGE. I think that's overdoing it just for
this issue, though. If we would track desktop visibility, we
should then avoid even trying to update the display at all while
the desktop isn't visible.
2005-09-26 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c (gdk_window_shape_combine_mask): Set
the shaped flag here, too. (#316871)
(gdk_window_shape_combine_region): Currently unimplemented, so
don't do anything to the shaped flag here.
2005-09-26 Matthias Clasen <mclasen@redhat.com>
Fix#316871, reported by Dan Winship:
* gdk/gdkwindow.h (struct _GdkWindowObject): Add a shaped flag.
* gdk/x11/gdkwindow-x11.c (gdk_window_shape_combine_mask)
(gdk_window_shape_combine_region): Set it here.
* gdk/gdkwindow.c (gdk_window_invalidate_maybe_recurse): Don't
remove the child area for shaped windows.
2005-09-21 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkselection-win32.c (gdk_selection_convert,
gdk_text_property_to_text_list_for_display,
gdk_text_property_to_utf8_list_for_display,
gdk_win32_selection_add_targets,
_gdk_win32_selection_convert_to_dib): Free return value from
gdk_atom_name().
(gdk_text_property_to_text_list_for_display): Drop GError variable
that isn't actually used after being set.
2005-09-20 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkselection-win32.c
(gdk_selection_owner_get_for_display): Do return the correct owner
for CLIPBOARD (i.e., the owner of the Windows Clipboard, if it is
a window GDK knows about). The reason to return NULL seems to have
gone when in the fix for bug #163702 the artificial
GDK_SELECTION_CLEAR event generation was removed from
gdk_selection_send_notify_for_display(). Fixes bug #316552.
2005-09-18 Hans Breuer <hans@breuer.org>
* gdk/gdk.symbols gdk/win32/gdkwin32.h gdk/win32/gdkcursorwin32.c : export
_gdk_win32_pixbuf_to_hicon() as gdk_win32_pixbuf_to_hicon_libgtk_only()
* gtk/gtktrayicon-win32.c : a lot of debug spew but it has started to show
the icon and is blinking with teststatusicon. More to come ...
2005-09-18 Hans Breuer <hans@breuer.org>
* gtk/makefile.msc.in : fix typo for GTK_VER; define HAVE_CONFIG_H
cause gtkprogressbar.c has #include <config.h> conditionally; less
noise from generated gtk.def
* gtk/stock-icons/makefile.msc gdk/makefile.msc tests/makefile.msc : updated
* gtk/gtktrayicon-win32.c : dummy implmentation to make gtk compile.
For me it works as well as the *NIX implemenation, that is not at all.
* gdk/win32/gdkproperty-win32.c : implement gdk_atom_intern_static_string()
* gdk/win32/gdkwindow-win32.c(gdk_window_set_urgency_hint) : only use
only use (WINVER >= 0x0500) when available from the SDK. Otherwise fall
back to true dynamic linking of FlashWindowEx. Makes gtk+ work on NT4.0
again - if compiled properly.
* tests/teststatusicon.c : don't use GNOME icons for testing, but icons
already coming with Gtk+. Makes it compile on win32.
2005-09-09 Matthias Clasen <mclasen@redhat.com>
Make it possible to determine if a key event is for a
modifier key:
* gdk/x11/gdkprivate-x11.h:
* gdk/x11/gdkkeys-x11.c (_gdk_keymap_key_is_modifier):
New function to determine if a keycode is mapped to a modifier.
(get_xkb): Get the modmap.
* gdk/x11/gdkevents-x11.c (translate_key_event): Set the
is_modifier bit by calling _gdk_keymap_key_is_modifier().
* gdk/gdkevents.h (struct _GdkEventKey): Add an is_modifier
bit.
2005-09-09 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkdisplay-win32.c (gdk_display_get_name): Cache the
display name. There is only one GdkDisplay on Win32, and
constructing the display name isn't entirely trivial, so cacheing
is probably worth it. For instance GIMP calls this function a lot.
(gdk_display_open): Call gdk_display_get_name() to prime the
cached name.
(gdk_display_get_n_screens, gdk_display_get_screen,
gdk_display_get_default_screen): Verify parameter correctness like
the X11 backend does.
* gdk/win32/gdkscreen-win32.c (gdk_screen_make_display_name):
Return a freshly allocated string, as the API specifies. Fixes a
heap corruption problem that caused random errors and crashes in
GIMP, for instance.
2005-09-06 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkkeys-x11.c (update_modmap): Make the modmap reflexive.
(_gdk_keymap_add_virtual_modifiers): Don't add both Alt and Meta
if they are mapped to the same modifier.
2005-09-06 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkaccelgroup.c (gtk_accelerator_parse):
* gtk/gtkaccellabel.c (_gtk_accel_label_class_get_accelerator_label):
Don't use GDK_ALT_MASK.
* gdk/gdktypes.h: No need to introduce GDK_ALT_MASK
2005-09-06 Matthias Clasen <mclasen@redhat.com>
Add support for extra virtual modifiers: (#85780, Owen Taylor)
* gdk/x11/gdkkeys-x11.c (struct _GdkKeymapX11): Add a
modmap to maintain the information which X modifiers map to
virtual modifiers.
(get_xkb): Set up the modmap from the XKB tables.
(update_keymaps): Set up the modmap from the information returned
by XGetModifierMapping in the non-XKB case.
* gdk/x11/gdkprivate-x11.h:
* gdk/x11/gdkkeys-x11.c (_gdk_keymap_add_virtual_modifiers): New
function to set the virtual modifiers in the state.
* gdk/x11/gdkevents-x11.c (translate_key_event): Call
_gdk_keymap_add_virtual_modifiers here.
* gdk/gdktypes.h (GdkModifierType): Add bits for virtual Super,
Hyper and Meta modifiers. Also add GDK_ALT_MASK as an alias
for GDK_MOD1_MASK.
2005-09-02 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Keep track of
cursor position also in root window coordinates. Prune out
superfluous WM_MOUSEMOVE messages even earlier, based on root window
coordinates. Windows sends WM_MOUSEMOVE messages after a new
window has ben mapped below the cursor even if the mouse doesn't
move. We used to generate GDK_MOTION_NOTIFY in these cases. This
confused at least gtk_menu_motion_notify(). (#314995)
* gtk/gtkintl.h: No need to include config.h here. It caused
warnings about GTK_LOCALEDIR being redefined on Win32 when
compiling files where gtkintl.h is included after gtkprivate.h
(which #undefines and re-#defines GTK_LOCALEDIR on Win32).
* gtk/gtkplug.c: Include config.h.
2005-09-01 Matthias Clasen <mclasen@redhat.com>
* gdk/*.c: Intern some more strings.
* gtk/gtkintl.h:
* gtk/*.c: Define an I_() macro and use it instead of the
bulky g_intern_static_string().
2005-08-31 Matthias Clasen <mclasen@redhat.com>
* gdk/Makefile.am:
* gtk/Makefile.am: Intern type names in code generated by
glib-mkenums, too.
* gtk/*.c:
* gdk/x11/*.c:
* gdk/*.c: Intern type names before registering the type to avoid
unnecessary copies.
2005-08-26 Matthias Clasen <mclasen@redhat.com>
* gdk/gdk.symbols:
* gdk/gdkscreen.h:
* gdk/gdkscreen.c: Make the GdkScreen font options api
public, and add properties GdkScreen::font-options and
GdkScreen::resolution. (#314004)
* gdk/gdkpango.c:
* gtk/gtksettings.c:
* gtk/gtkwidget.c: Adjust all callers.
* gdk/gdkintl.h: Simplify and use glib/gi18n-lib.h.
* gdk/gdkpango.c: Include gdkintl.h, not gtkintl.h.
* gdk/gdkscreen.c: Include gdkintl.h.
2005-08-25 Owen Taylor <otaylor@redhat.com>
* gdk/gdkscreen.c (gdk_screen_get_type): Use gdk_screen_init
as instance_init, not base_init! (Fix from Frederic Crozat,
reported by Joe Marcus Clarke). Trivial cleanup: use -1.
rather than -1 for a negative flag value.
2005-08-23 Owen Taylor <otaylor@redhat.com>
Fix for #314004, reported by Michael Reinsch:
* gdk/gdk.symbols:
* gdk/gdkscreen.[ch]: Add gdk_screen_get/set_font_options_libgtk_only()
Add gdk_screen_get/set_resolution_libgtk_only()
* gdk/gdkpango.c (gdk_pango_context_get_for_screen): Set
the options for the screen on the newly created context.
* gtk/gtksettings.c (settings_update_font_options/dpi) gtkwidget.c:
Move font options and dpi code from gtkwidget.c to gtksettings.c, set
the font options on the screen.
* gtk/gtkwidget.c (gtk_widget_update_pango_context): Just get
the font options from the screen and set them on the context.
2005-08-19 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkdnd-x11.c (_gdk_drag_get_protocol_for_display)
(xdnd_read_actions, get_client_window_at_coords_recurse):
Free data returned from XGetWindowProperty.
* gdk/x11/gdkevents-x11.c (fetch_net_wm_check_window)
Free data returned from XGetWindowProperty. (313867, Kjartan
Maraas)
* gdk/x11/gdkdnd-x11.c (get_client_window_at_coords_recurse): Free
children in all cases. (#313862, Kjartan Maraas)
2005-08-19 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkdnd-x11.c (get_client_window_at_coords_recurse): Free
children in all cases. (#313862, Kjartan Maraas)
2005-08-15 Owen Taylor <otaylor@redhat.com>
* configure.in: Fix have_base_pc / have_base_x_pc typo.
* gdk/x11/gdkdrawable-x11.c gtk/gtksettings.c: Remove panoxft.h includes.
(#313417, James Andrewartha)
* configure.in: Add fontconfig to X_PACKAGES, since we use it for
FcNameConstant(). (More of #313417)
2005-08-09 Owen Taylor <otaylor@redhat.com>
* configure.in: Strip out all Xft, FreeType, and pangoxft checking.
Rewrite X checks to use pkg-config as much as possible.
* gdk/win32/gdkfont-win32.c (gdk_font_from_description_for_display): Make
this return Arial always to avoid using PangoWin32FontMap. (X11 backend
has always been returned "fixed" for a long time)
* gdk/linux-fb/gdkdrawable-fb2.c: Remove draw_glyphs() implementations,
fall through to the default implementation in terms of Cairo.
* gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_draw_text): Use gdk_draw_glyphs()
on the wrapper rather than gdk_fb_draw_glyphs()
2005-08-01 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkxftdefaults.c: Define the hint styles to make
building against fc < 2.2.92 work. (#311839, Damien Carbery)
2005-08-01 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkevents-x11.c (gdk_check_wm_desktop_changed): Make
tracking the on_all_desktops state work better.
* gdk/x11/gdkwindow-x11.c (gdk_x11_window_move_to_current_desktop):
Don't do anything if the window is on all desktops. (#311803,
Elijah Newren)
2005-07-29 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkevents-win32.c: Remove ifdeffed out code relating
to the gdk-ping message. Use the global _gdk_display instead of
calling gdk_display_get_default() which would return _gdk_display
anyway.
(append_event, apply_filters, gdk_event_translate): Drop any
GdkDisplay parameter as we only have one display anyway. Use
_gdk_display where needed.
(gdk_event_apply_filters): Delete, move the code into its only
caller, apply_filters().
(generate_button_event): Factor out code from two places in
gdk_event_translate().
(gdk_event_translate): Call generate_button_event() in place of
inline code.
2005-07-29 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkevents-win32.c (generate_grab_broken_event): New
static function to generate and append the GDK_GRAB_BROKEN events.
(gdk_pointer_grab, gdk_keyboard_grab): Generate grab broken events
when overriding a grab inside the application, like in the X11
backend. Final bits of the fix for #107320, hopefully.
(print_event): Handle also GDK_SETTING, GDK_OWNER_CHANGE and
GDK_GRAB_BROKEN events.
(gdk_event_translate): Call generate_grab_broken_event() in place
of inline code.
2005-07-29 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkdrawable-win32.c (blit_inside_drawable): Rename
from blit_inside_window(), as it now does blitting inside a
bitmap, too. No code change, still just call BitBlt().
(_gdk_win32_blit): Check for source equalling destination
first. (#169508, #131977)
Do away with the superfluous local draw_impl variable, the
parameter to this function is already a GdkDrawableImplWin32*, no
need to copy and cast it.
2005-07-28 Robert Ögren <gtk@roboros.com>
Avoid spurious core pointer events when the tablet pen is lifted.
(#167000)
* gdk/win32/gdkinput-win32.c (set_ignore_core): New static function,
handles delayed unsetting of _gdk_input_ignore_core.
(_gdk_input_other_event): Call set_ignore_core instead of setting
_gdk_input_ignore_core directly.
2005-07-19 Owen Taylor <otaylor@redhat.com>
* gtk/gtksettings.c gtk/gtkwidget.c: Change machinery for
following font rendering xsettings to set cairo font
options on PangoContext
* gdk/x11/gdkxftdefaults.c gdk/x11/gdkevents-x11.c gdkscreen-x11.h
gdkprivate-x11.h: Get default values for rendering options
(such as antialiasing, dpi) from the Xft resources for the
display, borrowing a bit of code from Xft.
* gtk/gtksettings.c (gtk_settings_class_init): Fix docs for
values of gtk-xft-hintstyle.
2005-07-21 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkwindow-win32.c (gdk_window_set_title): Use
wide-char API when available. (#311079, Peter Zelezny)
2005-07-20 Keith Packard <keithp@keithp.com>
* gdk/x11/gdkdrawable-x11.c: (gdk_x11_ref_cairo_surface):
Follow change in cairo API to add Screen* to
cairo_xlib_create_surface_for_bitmap
2005-07-18 Tor Lillqvist <tml@novell.com>
* configure.in (GDK_EXTRA_LIBS): [Win32] Bypass libtool, use
-Wl,-luuid. This avoids a libtool warning as libuuid is static.
* gdk/win32/gdkgc-win32.c (gdk_win32_hdc_get): Be sure to remove
any possible leftover clipping region in the DC if we don't want
any clipping. Thanks to Robert Ögren. (#309823)
2005-07-14 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkevents-x11.c (set_screen_from_root): Don't assert if
the xrootwin is invalid. (#309997, Barbie LeVille)
(gdk_event_translate): Ignore events with an invalid root field.
2005-07-13 Robert gren <gtk@roboros.com>
Fix handling of Aiptek and Aiptek-like graphical tablets such as Trust
on Windows. (#167004, thanks to "pnohant" for testing)
Code cleanup: Remove the unused and unmaintained code for using a
non-system tablet context (USE_SYSCONTEXT ifdef:s), suggested
by Tor Lillqvist.
* gdk/win32/gdkinput-win32.c (_gdk_input_wintab_init_check): Handle
tablet drivers that don't support WTI_DDCTXS/WTI_DSCTXS gracefully.
Sligthly reorganize and simplify the code to support this.
(_gdk_input_wintab_init_check, _gdk_input_other_event): Remove
USE_SYSCONTEXT ifdef:s and the code for the case it was not defined.
(gdk_input_window_find_within): Removed.
2005-07-11 Matthias Clasen <mclasen@redhat.com>
Make gdk_window_present() move the window to the current
desktop, instead of letting the WM change the current
desktop to where the window is. (#166379, Elijah Newren)
* gdk/gdk.symbols:
* gdk/x11/gdkx.h:
* gdk/x11/gdkwindow-x11.c (gdk_x11_window_move_to_current_desktop):
New function to move a window to the current desktop.
* gtk/gtkwindow.c (gtk_window_present_with_time): Move the
window to the current desktop before giving it focus.
2005-07-09 Tor Lillqvist <tml@novell.com>
* configure.in: Look for windres on Win32.
* gdk-pixbuf/Makefile.am
* gdk/win32/rc/Makefile.am
* gdk/Makefile.am
* gtk/Makefile.am: Don't use the scripts in build/win32 to compile
the rc files into resource object files. (This means we lose the
build number increment magic, but I doubt it was that useful
anyway.) Instead use windres directly. To pass a normal .o file
produced by windres through libtool, which would want a .lo file,
pass it directly to the linker using a -Wl option.
* gdk-pixbuf/gdk_pixbuf.rc.in
* gdk/win32/rc/gdk.rc.in
* gtk/gtk-win32.rc.in: Replace BUILDNUMBER with 0.
2005-07-06 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c
(gdk_win32_icon_to_pixbuf_libgtk_only): Don't create the GdkPixbuf
until we know that we have something to put in it.
2005-07-06 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkcursor-win32.c: Add comment about the current named
cursor implementation, and what it maybe really should do.
(gdk_win32_icon_to_pixbuf_libgtk_only): New function, code moved
here from gtk/gtkfilesystemwin32.c:extract_icon().
(gdk_cursor_get_image): Use
gdk_win32_icon_to_pixbuf_libgtk_only().
* gdk/gdk.symbols
* gdk/win32/gdkwin32.h: Declare gdk_win32_icon_to_pixbuf_libgtk_only().
* gtk/gtkfilesystemwin32.c (extract_icon): Use
gdk_win32_icon_to_pixbuf_libgtk_only().
2005-07-03 Hans Breuer <hans@breuer.org>
* **/makefile.msc[.in] : updated
* gtk/gtkiconcache.c : <io.h> for open()
* gtk/gtkstyle.c : use G_PI instead of M_PI
* gdk/win32/gdkcursor-win32.c : implement gdk_cursor_new_from_name()
by mapping the lower case win32 api name to the respective cursor.
E.g. pass "wait" to get the IDC_WAIT cursor. Also allows to load
cursors from named resources in the executable.
(gdk_cursor_get_image) : just return NULL for now.
* gdk/win32/gdkgeometry-win32.c : implement gdk_window_move_region()
by delegation to ScollWindowEx(), untested.
* gdk/win32/gdkwindow-win32.c : stub for gdk_window_set_urgency_hint()
2005-06-30 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkvisual-x11.c (gdk_visual_decompose_mask): Avoid
infinite loop if a mask is zero. (#309222, David Saxton)
2005-06-27 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Ignore
GrabBroken events which are caused by overgrabbing inside
the application; menus rely on these for their operation.
* gdk/gdkevents.h (struct _GdkEventGrabBroken): Add a
grab_window field.
* gdk/win32/gdkevents-win32.c (gdk_event_translate): Set
grab_window to NULL when generating GrabBroken events for
WM_KILLFOCUS messages.
* gdk/x11/gdkmain-x11.c (_gdk_xgrab_check_unmap)
(_gdk_xgrab_check_destroy): Set grab_window to NULL when
generating GrabBroken events when the grab window becomes
unviewable or is destroyed.
* gdk/x11/gdkmain-x11.c (gdk_pointer_grab, gdk_keyboard_grab):
Generate GrabBroken events when overriding a grab inside
the application. In this case, set grab_window to the new
grab_window.
2005-06-27 Matthias Clasen <mclasen@redhat.com>
* modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize):
Avoid a segfault. (#309054)
* gdk/x11/gdkdisplay-x11.h (struct _GdkDisplayX11): Add
fields for grab timestamps.
* gdk/x11/gdkmain-x11.c (gdk_pointer_grab, gdk_keyboard_grab):
Store grab timestamps when grabbing.
* gdk/x11/gdkdisplay-x11.c (gdk_display_keyboard_ungrab)
(gdk_display_pointer_ungrab): Don't unset the grab_window
if the timestamps indicate that the ungrab will fails.
2005-06-26 Tor Lillqvist <tml@novell.com>
* gdk/Makefile.am
* gtk/Makefile.am: Current GNU tools do understand the PRIVATE
keyword, so no need to remove those entries from the import
library. libtool installs the .dll.a import library itself, so no
need to do it here. Install the .def file.
2005-06-25 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkmain-x11.c (gdk_keyboard_grab, gdk_pointer_grab):
Don't emit grab-broken for overgrabbing, until we figure
out how to do that without breaking the menu code.
2005-06-25 Matthias Clasen <mclasen@redhat.com>
Add a GrabBroken event to GDK, and a grab-broken-event
signal to GtkWidget. (#107320, Simon Cooke, initial patch
by John Ehresman)
* gdk/gdkevents.h: Add a GDK_GRAB_BROKEN event type,
define a GdkEventGrabBroken event struct.
* gdk/win32/gdkevents-win32.c (gdk_event_translate):
Generate GrabBroken events in response to WM_KILLFOCUS.
* gdk/x11/gdkmain-x11.c: Generate GrabBroken events
when a grab is broken by the window becoming unviewable,
or by another grab from the same client.
* gtk/gtkwidget.h (GtkWidgetClass): Add grab_broken_event.
* gtk/gtkwidget.c (gtk_widget_event_internal): Translate
GrabBroken events into grab_broken_event signals.
* gtk/gtkmain.c (gtk_main_do_event): Propagate GrabBroken
events.
* gtk/gtkmenushell.c (gtk_menu_shell_grab_broken): Deactivate
the menu when the grab is broken.
* gtk/gtkcolorsel.c (gtk_color_selection_grab_broken): Stop
the color picker if the grab is broken.
* gtk/gtkpaned.c (gtk_paned_grab_broken): Stop the drag if
the grab is broken.
2005-06-24 Owen Taylor <otaylor@redhat.com>
* gdk/gdkrgb.c (gdk_rgb_select_conv): Fix up selection of
conversion functions for MSB machines: convert_0888[_br]
now work on bytes so are endian independent.
(Reported by David Zeuthen)
2005-06-23 Tor Lillqvist <tml@novell.com>
Improve and simplify line segment rendering on Win32, especially
the implementation of GDK_CAP_NOT_LAST, and dashed lines. Fixes
bug #306396.
* gdk/win32/gdkprivate-win32.h (GdkGCWin32): Save the GdkGC's
line_style, cap_style and join_style as such in the
GdkGCWin32. Don't need to keep the pen_double_dash flag, we can
check the line_style.
* gdk/win32/gdkgc-win32.c (fixup_pen): New internal function. Sets
up the GDI pen type, style, end cap and join attributes to use
based on the pen width, GDK line style, end cap style, and join
style.
For a narrow (zero-width) GDK pen with the GDK_CAP_NOT_LAST end
cap style, which typically are used for XOR drawing where it is
essential that the last pixel is not drawn, use a GDI cosmetic
pen. Only for a cosmetic pen does GDI not draw the last pixel. I
deduced this by experimetation, the documentation is rather vague.
For other GDK pens use a geometric GDI pen. If the width is 0 or 1
and the GDK end cap style is GDK_CAP_BUTT, and the line style is
GDK_LINE_SOLID, use PS_ENDCAP_ROUND. This ensures that also
single-pixel length lines are drawn. (For sngle-pixel width lines
roundness as such is of course irrelevant.) For dashed lines, use
PS_ENDCAP_FLAT.
For wide lines use PS_ENDCAP_FLAT, _ROUND or _SQUARE,
respectively, for GDK_CAP_BUTT, GDK_CAP_ROUND and GDK_CAP_PROJECTING.
For one pixel on-off dashed lines, use PS_ALTERNATE, it seems to
work better than PS_USERSTYLE. For other dashed lines, use
PS_USERSTYLE and the dashes as set by the user (or the default
four-pixel on-off style).
(gdk_win32_gc_values_to_win32values, gdk_win32_gc_set_dashes):
Call fixup_pen() to do the pen settings after modifying some of
the GDK GC attributes that affect pens.
* gdk/win32/gdkdrawable-win32.c (render_line_horizontal,
render_line_vertical, draw_segments): Check GdkGCWin32::line_style
instead of the the removed pen_double_dash member. Don't use
PATCOPY unconditionally in the PatBlt() call, use a raster ope
code that depends on the GC function in use.
(draw_rectangle, draw_segments, draw_lines): Be more careful in
deciding when to do the manual dash rendering.
(draw_segments): Don't do any manual "last point" drawing at
all. The above changes takes care of narrow line segments being
drawn correctly in most cases, at least on NT-based Windows.
2005-06-23 Owen Taylor <otaylor@redhat.com>
* gdk/gdkcairo.c (gdk_cairo_set_source_pixbuf): Fix the
big endian case for 3-channel source. (Reported by
David Zeuthen)
2005-06-22 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkdnd-x11.c (xdnd_finished_filter): Set the
time field in the event. (#308573, Morten Welinder)
2005-06-21 Matthias Clasen <mclasen@redhat.com>
* gdk/gdk.symbols:
* gdk/gdkwindow.h:
* gdk/x11/gdkgeometry-x11.c (gdk_window_move_region): New
function which can be used to implement scrolling in
non-window widgets. (#135165, Søren Sandmann)
Sat Jun 18 04:22:51 2005 Manish Singh <yosh@gimp.org>
* gdk/gdkcursor.h: remove GDK_CURSOR and GDK_IS_CURSOR, instance
checks don't work on boxed types.
* gdk/x11/gdkcursor-x11.c:
* gdk/gdkcursor.c: make return_if_fail checks != NULL instead of
GDK_IS_CURSOR.
2005-06-17 Matthias Clasen <mclasen@redhat.com>
Support the ICCCM urgency hint. (#61858, Havoc Pennington)
* gtk/gtk.symbols:
* gtk/gtkwindow.[hc]: Add a GtkWindow::urgency-hint property
with getter and setter.
* gdk/gdk.symbols:
* gdk/gdkwindow.h:
* gdk/x11/gdkwindow-x11.c (gdk_window_set_urgency_hint):
Add a setter for the urgency hint.
* gdk/x11/gdkwindow-x11.h (struct _GdkToplevelX11): Store
urgency hint here.
* gdk/x11/gdkwindow-x11.c (update_wm_hints): Set the urgency
hint in the WM_HINTS property when appropriate.
2005-06-17 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkdnd-win32.c (gdk_dropfiles_filter): Set the actions
and suggested_action fields in the GdkDragContext to
GDK_ACTION_COPY. Otherwise apps that check the suggested_action
field, like eog, won't accept dropped files.
2005-06-17 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkcursor-x11.c:
* gdk/gdkcursor.c: Improve some return_if_fail checks,
and add the missing non-Xcursor fallback for
_gdk_x11_cursor_update_theme(), noticed by Jeroen
Zwartepoorte.
2005-06-17 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkprivate-x11.h:
* gdk/x11/gdkcursor-x11.c: Handle cursor theme changes
for cached cursors which are not associated with a window
at the time of the theme change, by storing a serial
number in each cursor, and updating the theme_serial
counter whenever the cursor theme changes.
* gdk/x11/gdkcursor-x11.c (_gdk_x11_cursor_update_theme):
Private function to update a cursor to the current
cursor theme if necessary.
* gdk/x11/gdkmain-x11.c (gdk_pointer_grab):
* gdk/x11/gdkwindow-x11.c (gdk_window_set_cursor): Call
_gdk_x11_cursor_update_theme() here.
Thu Jun 16 15:33:42 2005 Manish Singh <yosh@gimp.org>
* gdk/x11/gdkcursor-x11.c (update_cursor): remove unused variable.
* gdk/x11/gdkwindow-x11.c (_gdk_x11_window_get_cursor): use
g_return_val_if_fail.
* gtk/gtkdnd.c (gtk_drag_get_cursor): initialize hot_x and hot_y
for all cases.
* gtk/gtkfilechooserdefault.c (button_new): gtk_button_set_image
takes a GtkWidget, not a GtkImage.
2005-06-15 Matthias Clasen <mclasen@redhat.com>
* gtk/gtksettings.c: Add two new settings,
gtk-cursor-theme-name and gtk-cursor-theme-size to
control the cursor theme.
* gdk/x11/gdkevents-x11.c: Add two new X settings,
Gtk/CursorThemeName and Gtk/CursorThemeSize, and map
these to the gtk settings.
* tests/testgtk.c (create_cursors): Add a cursor theme
testcase.
2005-06-15 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkwindow-x11.[hc]: Keep a reference to the
GdkCursor and add a private getter for it, so that we can
update the cursor when the cursor theme changes.
* gdk/gdk.symbols:
* gdk/x11/gdkx.h:
* gdk/x11/gdkcursor-x11.c (gdk_x11_display_set_cursor_theme):
New function to change the cursor theme.
2005-06-14 Matthias Clasen <mclasen@redhat.com>
* gdk/x11/gdkcursor-x11.c (gdk_cursor_new_from_name): Add a
stub for the no-Xcursor case. (noticed by Luis Villa)
2005-06-14 Matthias Clasen <mclasen@redhat.com>
* gdk/gdk.symbols:
* gdk/gdkcursor.h:
* gdk/x11/gdkcursor-x11.c (gdk_cursor_get_image)
(gdk_cursor_new_from_name): New functions to construct named
cursors and to get the image used for a cursor.