From 6ff97d2e0b1fc69390982c7b58b6649a00e420cd Mon Sep 17 00:00:00 2001 From: Hans Breuer Date: Sat, 31 Mar 2001 19:33:49 +0000 Subject: disable USE_MMX for msvc build cause the assembler doesn't fit and is out 2001-03-31 Hans Breuer * config.h.win32.in : disable USE_MMX for msvc build cause the assembler doesn't fit and is out of my scope. Disable USE_GMODULE for msvc build as wel. The right way to share binaries on win32 would be to use libtiff.dll etc. To reduce installation hassles IMO it's better to include all fileformats builtin to gdk-pixbuf * gdk-pixbuf/makefile.msc : new file * gdk/gdk.def : updated * gdk/win32/gdkevents-win32.c : don't erase the background if .no_bg is set. It improves the scrolling (e.g. of testgtk main buttons * gdk/win32/gdkgeometry-win32.c : added comment about the above * gdk/win32/gdkwindow-win32.c : added three new functions like the X version. Only one is implemented, because the other two "gdk_window_begin_(resize|move)_drag" got no docs and appear to be default behaviour on win32 anyway ... * gtk/gtk.def : updated * gtk/makefile.msc.in : update for new files, use glib-genmarshal from where it was built and add an additional rule to automagically build gtkmarshal.[hc] * gtk/gtkfilesel.c (open_new_dir) : don't increase n_entries before array access for the current entry isn't finished * gtk/gtktreeitem.c (gtk_tree_item_subtree_button_click) : use g_return_val_if_fail * gtk/testgtk.c (window_controls) : don't use the *wrong* size for the static array, but let the compiler calculate it. It makes me wonder if gcc isn't capable to catch bugs like this ... --- gdk/win32/gdkevents-win32.c | 8 ++++++ gdk/win32/gdkgeometry-win32.c | 6 +++- gdk/win32/gdkwindow-win32.c | 66 ++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 78 insertions(+), 2 deletions(-) (limited to 'gdk/win32') diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 79a414f11d..3193827362 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -2512,6 +2512,14 @@ gdk_event_translate (GdkEvent *event, if (GDK_WINDOW_OBJECT (window)->input_only) break; + if (GDK_WINDOW_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl)->position_info.no_bg) + { + /* improves scolling effect, e.g. main buttons of testgtk */ + *ret_val_flagp = TRUE; + *ret_valp = 1; + break; + } + colormap = GDK_DRAWABLE_IMPL_WIN32 (GDK_WINDOW_OBJECT (window)->impl)->colormap; if (colormap) colormap_private = GDK_COLORMAP_PRIVATE_DATA (colormap); diff --git a/gdk/win32/gdkgeometry-win32.c b/gdk/win32/gdkgeometry-win32.c index 4fe022dbd1..d16ae5426a 100644 --- a/gdk/win32/gdkgeometry-win32.c +++ b/gdk/win32/gdkgeometry-win32.c @@ -808,8 +808,12 @@ gdk_window_tmp_unset_bg (GdkWindow *window) impl->position_info.no_bg = TRUE; + /* + * The X version sets background = None to avoid updateing for a moment. + * Not sure if this could really emulate it. + */ if (obj->bg_pixmap != GDK_NO_BG) - /* ??? */; + /* handled in WM_ERASEBKGRND proceesing */; } static void diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index 3ffcc8f882..3a5ac37b6d 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -832,7 +832,7 @@ gdk_window_show (GdkWindow *window) } else { - GdkWindow *parent = private->parent; + GdkWindow *parent = GDK_WINDOW (private->parent); ShowWindow (GDK_WINDOW_HWND (window), SW_SHOWNORMAL); ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE); @@ -1705,6 +1705,39 @@ gdk_window_get_root_origin (GdkWindow *window, pt.x, pt.y)); } +void +gdk_window_get_frame_extents (GdkWindow *window, + GdkRectangle *rect) +{ + GdkWindowObject *private; + HWND hwnd; + RECT r; + + rect->x = 0; + rect->y = 0; + rect->width = 1; + rect->height = 1; + + if (GDK_WINDOW_DESTROYED (window)) + return; + + hwnd = GDK_WINDOW_HWND (window); + /* find the frame window */ + while (HWND_DESKTOP != GetParent (hwnd)) + { + hwnd = GetParent (hwnd); + g_return_if_fail (NULL != hwnd); + } + + if (GetWindowRect (hwnd, &r)) + WIN32_API_FAILED ("GetWindowRect"); + + rect->x = r.left; + rect->y = r.right; + rect->width = r.right - r.left; + rect->height = r.bottom - r.top; +} + GdkWindow* gdk_window_get_pointer (GdkWindow *window, gint *x, @@ -2442,3 +2475,34 @@ gdk_window_shape_combine_region (GdkWindow *window, /* XXX: even on X implemented conditional ... */ } + +void +gdk_window_begin_resize_drag (GdkWindow *window, + GdkWindowEdge edge, + gint button, + gint root_x, + gint root_y, + guint32 timestamp) +{ + g_return_if_fail (GDK_IS_WINDOW (window)); + + if (GDK_WINDOW_DESTROYED (window)) + return; + + /* XXX: isn't all this default on win32 ... */ +} + +void +gdk_window_begin_move_drag (GdkWindow *window, + gint button, + gint root_x, + gint root_y, + guint32 timestamp) +{ + g_return_if_fail (GDK_IS_WINDOW (window)); + + if (GDK_WINDOW_DESTROYED (window)) + return; + + /* XXX: isn't all this default on win32 ... */ +} \ No newline at end of file -- cgit v1.2.1