summaryrefslogtreecommitdiff
path: root/gdk/win32
diff options
context:
space:
mode:
authorHans Breuer <hans@breuer.org>2001-03-31 19:33:49 +0000
committerHans Breuer <hans@src.gnome.org>2001-03-31 19:33:49 +0000
commit6ff97d2e0b1fc69390982c7b58b6649a00e420cd (patch)
treef55593eadb81596bc16d5ae37ae0880c7d41e7da /gdk/win32
parent3b68d7db89b7a5bbcfc8f959c2c12569f3643fed (diff)
downloadgtk+-6ff97d2e0b1fc69390982c7b58b6649a00e420cd.tar.gz
disable USE_MMX for msvc build cause the assembler doesn't fit and is out
2001-03-31 Hans Breuer <hans@breuer.org> * 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 ...
Diffstat (limited to 'gdk/win32')
-rw-r--r--gdk/win32/gdkevents-win32.c8
-rw-r--r--gdk/win32/gdkgeometry-win32.c6
-rw-r--r--gdk/win32/gdkwindow-win32.c66
3 files changed, 78 insertions, 2 deletions
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