Compare commits

...

10 Commits

Author SHA1 Message Date
Benjamin Otte
2714329207 CI: Use graphene fedora-mingw package
It's been available since F38.
2023-05-10 09:56:27 +08:00
Benjamin Otte
c8933b97fb win32: Remove nonexisting functions from header 2023-05-10 09:56:27 +08:00
Benjamin Otte
605019af29 win32: Remove unused return value 2023-05-10 09:56:27 +08:00
Benjamin Otte
05fb1e6d9b win32: Use HR_CHECK()
HR_LOG() doesn't exist.
2023-05-10 09:56:27 +08:00
Benjamin Otte
e564b6b7c5 language names: Remove unused variable 2023-05-10 09:56:27 +08:00
Benjamin Otte
22fde632f1 win32: Call DwmExtendFrameIntoClientArea()
Gets rid of Windows' frame around the window. We draw our own frame,
thank you very much.

Mainly do it because every other OpenGL app does, too.
2023-05-10 09:56:27 +08:00
Benjamin Otte
e584df0840 glx: Don't check multisampling extension
We don't use it.
2023-05-10 09:56:27 +08:00
Benjamin Otte
579ea799e9 win32: Simplify API call
The region is not necessary (according to various Google examples).
2023-05-10 09:56:27 +08:00
Benjamin Otte
41f5678c2a win32: Add private HR_CHECK() macro
This works like GDK_VK_CHECK() in that it adds a check for a HRESULT and
if the result is not okay, it prints a g_warning() about the statement
that was evaluated and the error message, ideally with its string
version.

This is somewhat brittle because it's unclear if HRESULTs are allowed to
be treated like errors from GetLastError() but that's what everyone else
seems to do, too.
2023-05-10 09:56:27 +08:00
Matthias Clasen
d6a4c65bfa Post-release version bump 2023-05-09 20:48:33 -04:00
12 changed files with 53 additions and 69 deletions

View File

@@ -140,14 +140,14 @@ fedora-mingw64:
mingw64-glib2
mingw64-libepoxy
mingw64-pango
# mingw64-graphene (rawhide)
mingw64-graphene
script:
- .gitlab-ci/show-info-linux.sh
- export PATH="$HOME/.local/bin:$PATH"
- pip3 install --user meson~=1.0
- meson subprojects download
- meson subprojects update --reset
- meson -Dintrospection=disabled -Dgraphene:introspection=disabled _build
- meson -Dintrospection=disabled ${COMMON_MESON_FLAGS} _build
- meson compile -C _build
.mingw-defaults:

3
NEWS
View File

@@ -1,3 +1,6 @@
Overview of Changes in 4.11.3, xx-xx-xxxx
=========================================
Overview of Changes in 4.11.2, 09-05-2023
=========================================

View File

@@ -40,7 +40,7 @@ get_win32_all_locales_scripts (LPWSTR locale_w, DWORD flags, LPARAM param)
{
wchar_t *langname_w = NULL;
wchar_t locale_abbrev_w[9];
gchar *langname, *locale_abbrev, *locale, *p;
gchar *langname, *locale_abbrev, *locale;
gint i;
const LCTYPE iso639_lctypes[] = { LOCALE_SISO639LANGNAME, LOCALE_SISO639LANGNAME2 };
GHashTable *ht_scripts_langs = (GHashTable *) param;
@@ -59,7 +59,6 @@ get_win32_all_locales_scripts (LPWSTR locale_w, DWORD flags, LPARAM param)
GetLocaleInfoEx (locale_w, LOCALE_SLOCALIZEDDISPLAYNAME, langname_w, langname_size);
langname = g_utf16_to_utf8 (langname_w, -1, NULL, NULL, NULL);
locale = g_utf16_to_utf8 (locale_w, -1, NULL, NULL, NULL);
p = strchr (locale, '-');
lang = pango_language_from_string (locale);
if (g_hash_table_lookup (ht_scripts_langs, lang) == NULL)
g_hash_table_insert (ht_scripts_langs, lang, langname);

View File

@@ -3190,7 +3190,7 @@ gdk_event_translate (MSG *msg,
case WM_DWMCOMPOSITIONCHANGED:
gdk_win32_display_check_composited (GDK_WIN32_DISPLAY (display));
_gdk_win32_surface_enable_transparency (window);
gdk_win32_surface_enable_transparency (window);
break;
case WM_ACTIVATE:

View File

@@ -478,7 +478,7 @@ void gdk_dmanipulation_initialize (void)
if (hr == REGDB_E_CLASSNOTREG || hr == E_NOINTERFACE);
/* Not an error,
* DirectManipulation is not available */
else HR_LOG (hr);
else HR_CHECK (hr);
}
}
}

View File

@@ -101,7 +101,7 @@ gdk_win32_ensure_com (void)
"thread with an incompatible apartment model");
break;
default:
HR_LOG (hr);
HR_CHECK (hr);
break;
}
}
@@ -124,7 +124,7 @@ gdk_win32_ensure_ole (void)
"the thread has an incompatible apartment model");
break;
default:
HR_LOG (hr);
HR_CHECK (hr);
break;
}
}

View File

@@ -163,33 +163,12 @@ typedef enum
GDK_DRAG_PROTO_OLE2,
} GdkDragProtocol;
GType _gdk_gc_win32_get_type (void);
gulong _gdk_win32_get_next_tick (gulong suggested_tick);
BOOL _gdk_win32_get_cursor_pos (LPPOINT lpPoint);
void _gdk_surface_init_position (GdkSurface *window);
void _gdk_surface_move_resize_child (GdkSurface *window,
int x,
int y,
int width,
int height);
void gdk_win32_surface_enable_transparency (GdkSurface *self);
gboolean _gdk_win32_surface_enable_transparency (GdkSurface *window);
/* GdkSurfaceImpl methods */
void _gdk_win32_surface_scroll (GdkSurface *window,
int dx,
int dy);
void _gdk_win32_surface_move_region (GdkSurface *window,
const cairo_region_t *region,
int dx,
int dy);
void _gdk_win32_selection_init (void);
void _gdk_win32_dnd_exit (void);
void gdk_win32_handle_table_insert (HANDLE *handle,
@@ -206,8 +185,6 @@ cairo_region_t *_gdk_win32_hrgn_to_region (HRGN hrgn,
void _gdk_win32_adjust_client_rect (GdkSurface *window,
RECT *RECT);
void _gdk_selection_property_delete (GdkSurface *);
void _gdk_push_modal_window (GdkSurface *window);
void _gdk_remove_modal_window (GdkSurface *window);
GdkSurface *_gdk_modal_current (void);
@@ -251,12 +228,39 @@ void _gdk_win32_print_event (GdkEvent *event);
#endif
char *_gdk_win32_last_error_string (void);
void _gdk_win32_api_failed (const char *where,
const char *api);
void _gdk_other_api_failed (const char *where,
const char *api);
static inline HRESULT
hr_check (HRESULT hr,
const char *domain,
const char *file,
const char *line,
const char *func,
const char *expr)
{
char *error_string;
if (G_LIKELY (SUCCEEDED (hr)))
return hr;
error_string = g_win32_error_message (hr);
g_log_structured_standard (domain,
G_LOG_LEVEL_WARNING,
file,
line,
func,
"%s = 0x%lx: %s", expr, hr, error_string);
g_free (error_string);
return hr;
}
#define HR_CHECK(expr) hr_check (expr, G_LOG_DOMAIN, __FILE__, G_STRINGIFY (__LINE__), G_STRFUNC, #expr);
#define WIN32_API_FAILED(api) _gdk_win32_api_failed (G_STRLOC , api)
#define WIN32_GDI_FAILED(api) WIN32_API_FAILED (api)
#define OTHER_API_FAILED(api) _gdk_other_api_failed (G_STRLOC, api)
@@ -272,8 +276,6 @@ void _gdk_other_api_failed (const char *where,
#define GDI_CALL(api, arglist) (api arglist ? 1 : (WIN32_GDI_FAILED (#api), 0))
#define API_CALL(api, arglist) (api arglist ? 1 : (WIN32_API_FAILED (#api), 0))
#define HR_LOG(hr)
#define HR_CHECK_RETURN(hr) { if G_UNLIKELY (FAILED (hr)) return; }
#define HR_CHECK_RETURN_VAL(hr, val) { if G_UNLIKELY (FAILED (hr)) return val; }
#define HR_CHECK_GOTO(hr, label) { if G_UNLIKELY (FAILED (hr)) goto label; }

View File

@@ -267,40 +267,26 @@ _gdk_win32_adjust_client_rect (GdkSurface *window,
API_CALL (AdjustWindowRectEx, (rect, style, FALSE, exstyle));
}
gboolean
_gdk_win32_surface_enable_transparency (GdkSurface *window)
void
gdk_win32_surface_enable_transparency (GdkSurface *surface)
{
DWM_BLURBEHIND blur_behind;
HRGN empty_region;
HRESULT call_result;
HWND thiswindow;
HWND hwnd;
if (window == NULL || GDK_SURFACE_HWND (window) == NULL)
return FALSE;
if (surface == NULL || GDK_SURFACE_HWND (surface) == NULL)
return;
if (!gdk_display_is_composited (gdk_surface_get_display (window)))
return FALSE;
if (!gdk_display_is_composited (gdk_surface_get_display (surface)))
return;
thiswindow = GDK_SURFACE_HWND (window);
empty_region = CreateRectRgn (0, 0, -1, -1);
if (empty_region == NULL)
return FALSE;
hwnd = GDK_SURFACE_HWND (surface);
memset (&blur_behind, 0, sizeof (blur_behind));
blur_behind.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION;
blur_behind.hRgnBlur = empty_region;
blur_behind.dwFlags = DWM_BB_ENABLE;
blur_behind.fEnable = TRUE;
call_result = DwmEnableBlurBehindWindow (thiswindow, &blur_behind);
HR_CHECK (DwmEnableBlurBehindWindow (hwnd, &blur_behind));
if (!SUCCEEDED (call_result))
g_warning ("%s: %s (%p) failed: %" G_GINT32_MODIFIER "x",
G_STRLOC, "DwmEnableBlurBehindWindow", thiswindow, (guint32) call_result);
DeleteObject (empty_region);
return SUCCEEDED (call_result);
HR_CHECK (DwmExtendFrameIntoClientArea (hwnd, &(MARGINS) { -1 }));
}
static const char *
@@ -527,7 +513,7 @@ gdk_win32_surface_constructed (GObject *object)
gdk_dmanipulation_initialize_surface (surface);
}
_gdk_win32_surface_enable_transparency (surface);
gdk_win32_surface_enable_transparency (surface);
_gdk_win32_surface_register_dnd (surface);
_gdk_win32_surface_update_style_bits (surface);

View File

@@ -150,7 +150,6 @@ struct _GdkX11Display
guint has_glx_video_sync : 1;
guint has_glx_buffer_age : 1;
guint has_glx_sync_control : 1;
guint has_glx_multisample : 1;
guint has_glx_visual_rating : 1;
guint has_glx_create_es2_context : 1;
guint has_async_glx_swap_buffers : 1;

View File

@@ -955,8 +955,6 @@ gdk_x11_display_init_glx (GdkX11Display *display_x11,
epoxy_has_glx_extension (dpy, screen_num, "GLX_EXT_buffer_age");
display_x11->has_glx_sync_control =
epoxy_has_glx_extension (dpy, screen_num, "GLX_OML_sync_control");
display_x11->has_glx_multisample =
epoxy_has_glx_extension (dpy, screen_num, "GLX_ARB_multisample");
display_x11->has_glx_visual_rating =
epoxy_has_glx_extension (dpy, screen_num, "GLX_EXT_visual_rating");
@@ -1011,7 +1009,6 @@ gdk_x11_display_init_glx (GdkX11Display *display_x11,
"\t* GLX_SGI_video_sync: %s\n"
"\t* GLX_EXT_buffer_age: %s\n"
"\t* GLX_OML_sync_control: %s\n"
"\t* GLX_ARB_multisample: %s\n"
"\t* GLX_EXT_visual_rating: %s",
display_x11->glx_version / 10,
display_x11->glx_version % 10,
@@ -1023,7 +1020,6 @@ gdk_x11_display_init_glx (GdkX11Display *display_x11,
display_x11->has_glx_video_sync ? "yes" : "no",
display_x11->has_glx_buffer_age ? "yes" : "no",
display_x11->has_glx_sync_control ? "yes" : "no",
display_x11->has_glx_multisample ? "yes" : "no",
display_x11->has_glx_visual_rating ? "yes" : "no");
return TRUE;

View File

@@ -40,7 +40,7 @@ get_win32_all_locales_scripts (LPWSTR locale_w, DWORD flags, LPARAM param)
{
wchar_t *langname_w = NULL;
wchar_t locale_abbrev_w[9];
gchar *langname, *locale_abbrev, *locale, *p;
gchar *langname, *locale_abbrev, *locale;
gint i;
const LCTYPE iso639_lctypes[] = { LOCALE_SISO639LANGNAME, LOCALE_SISO639LANGNAME2 };
GHashTable *ht_scripts_langs = (GHashTable *) param;
@@ -59,7 +59,6 @@ get_win32_all_locales_scripts (LPWSTR locale_w, DWORD flags, LPARAM param)
GetLocaleInfoEx (locale_w, LOCALE_SLOCALIZEDDISPLAYNAME, langname_w, langname_size);
langname = g_utf16_to_utf8 (langname_w, -1, NULL, NULL, NULL);
locale = g_utf16_to_utf8 (locale_w, -1, NULL, NULL, NULL);
p = strchr (locale, '-');
lang = pango_language_from_string (locale);
if (g_hash_table_lookup (ht_scripts_langs, lang) == NULL)
g_hash_table_insert (ht_scripts_langs, lang, langname);

View File

@@ -1,5 +1,5 @@
project('gtk', 'c',
version: '4.11.2',
version: '4.11.3',
default_options: [
'buildtype=debugoptimized',
'warning_level=1',