mirror of
https://github.com/rozniak/xfce-winxp-tc.git
synced 2026-05-01 11:41:30 +00:00
Prelim: Fix up WinTCDpaDesktopWindow code
This commit is contained in:
@@ -19,7 +19,8 @@ static void on_window_destroyed(
|
||||
//
|
||||
// STATIC DATA
|
||||
//
|
||||
static gboolean S_OPTION_ARM = FALSE;
|
||||
static gboolean S_OPTION_ARM = FALSE;
|
||||
static gboolean S_OPTION_TEST = FALSE;
|
||||
|
||||
static GOptionEntry S_ENTRIES[] = {
|
||||
{
|
||||
@@ -31,6 +32,15 @@ static GOptionEntry S_ENTRIES[] = {
|
||||
"Arm the system to boot into graphical-mode setup.",
|
||||
NULL
|
||||
},
|
||||
{
|
||||
"test",
|
||||
't',
|
||||
0,
|
||||
G_OPTION_ARG_NONE,
|
||||
&S_OPTION_TEST,
|
||||
"Rory's testing mode.",
|
||||
NULL
|
||||
},
|
||||
G_OPTION_ENTRY_NULL
|
||||
};
|
||||
|
||||
@@ -98,6 +108,7 @@ int main(
|
||||
// Fire up xfwm4
|
||||
//
|
||||
if (
|
||||
!S_OPTION_TEST &&
|
||||
!wintc_launch_command(
|
||||
"xfwm4 --compositor=on",
|
||||
&error
|
||||
|
||||
@@ -3,21 +3,20 @@
|
||||
|
||||
#include <glib.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <wintc/shelldpa.h>
|
||||
|
||||
//
|
||||
// GTK OOP BOILERPLATE
|
||||
//
|
||||
typedef struct _WinTCSetupWindowClass WinTCSetupWindowClass;
|
||||
typedef struct _WinTCSetupWindow WinTCSetupWindow;
|
||||
#define WINTC_TYPE_SETUP_WINDOW (wintc_setup_window_get_type())
|
||||
|
||||
#define WINTC_TYPE_SETUP_WINDOW (wintc_setup_window_get_type())
|
||||
#define WINTC_SETUP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WINTC_TYPE_SETUP_WINDOW, WinTCSetupWindow))
|
||||
#define WINTC_SETUP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WINTC_TYPE_SETUP_WINDOW, WinTCSetupWindow))
|
||||
#define IS_WINTC_SETUP_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WINTC_TYPE_SETUP_WINDOW))
|
||||
#define IS_WINTC_SETUP_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WINTC_TYPE_SETUP_WINDOW))
|
||||
#define WINTC_SETUP_WINDOW_GET_CLASS(obj) (G_TYPE_CHECK_INSTANCE_GET_CLASS((obj), WINTC_TYPE_SETUP_WINDOW))
|
||||
|
||||
GType wintc_setup_window_get_type(void) G_GNUC_CONST;
|
||||
G_DECLARE_FINAL_TYPE(
|
||||
WinTCSetupWindow,
|
||||
wintc_setup_window,
|
||||
WINTC,
|
||||
SEUTP_WINDOW,
|
||||
WinTCDpaDesktopWindow
|
||||
)
|
||||
|
||||
//
|
||||
// PUBLIC FUNCTIONS
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#ifndef __SHELLDPA_DESKWND_H__
|
||||
#define __SHELLDPA_DESKWND_H__
|
||||
|
||||
#include <gdk/gdk.h>
|
||||
#include <glib.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
@@ -17,9 +18,16 @@ G_DECLARE_DERIVABLE_TYPE(
|
||||
GtkApplicationWindow
|
||||
)
|
||||
|
||||
struct _WinTCDpaDesktopWindowClass
|
||||
typedef struct _WinTCDpaDesktopWindowClass
|
||||
{
|
||||
GtkApplicationWindowClass __parent__;
|
||||
};
|
||||
} WinTCDpaDesktopWindowClass;
|
||||
|
||||
//
|
||||
// PUBLIC FUNCTIONS
|
||||
//
|
||||
GdkMonitor* wintc_dpa_desktop_window_get_monitor(
|
||||
WinTCDpaDesktopWindow* wnd
|
||||
);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
#include <gdk/gdk.h>
|
||||
#include <glib.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <wintc/comgtk.h>
|
||||
@@ -48,10 +49,18 @@ static void window_setup_x11(
|
||||
WinTCDpaDesktopWindow* wnd
|
||||
);
|
||||
|
||||
//
|
||||
// GTK OOP CLASS/INSTANCE DEFINITIONS
|
||||
//
|
||||
typedef struct _WinTCDpaDesktopWindowPrivate
|
||||
{
|
||||
GdkMonitor* monitor;
|
||||
} WinTCDpaDesktopWindowPrivate;
|
||||
|
||||
//
|
||||
// GTK TYPE DEFINITION & CTORS
|
||||
//
|
||||
G_DEFINE_TYPE_WITH_CODE(
|
||||
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(
|
||||
WinTCDpaDesktopWindow,
|
||||
wintc_dpa_desktop_window,
|
||||
GTK_TYPE_APPLICATION_WINDOW,
|
||||
@@ -152,6 +161,19 @@ static void wintc_dpa_desktop_window_set_property(
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// PUBLIC FUNCTIONS
|
||||
//
|
||||
GdkMonitor* wintc_dpa_desktop_window_get_monitor(
|
||||
WinTCDpaDesktopWindow* wnd
|
||||
)
|
||||
{
|
||||
WinTCDpaDesktopWindowPrivate* priv =
|
||||
wintc_dpa_desktop_window_get_instance_private(wnd);
|
||||
|
||||
return priv->monitor;
|
||||
}
|
||||
|
||||
//
|
||||
// PRIVATE FUNCTIONS
|
||||
//
|
||||
@@ -162,6 +184,8 @@ static void window_setup_wayland(
|
||||
WinTCDpaDesktopWindowPrivate* priv =
|
||||
wintc_dpa_desktop_window_get_instance_private(wnd);
|
||||
|
||||
// Use layer shell to become a desktop window
|
||||
//
|
||||
GtkWindow* window = GTK_WINDOW(wnd);
|
||||
|
||||
p_gtk_layer_init_for_window(window);
|
||||
@@ -184,6 +208,8 @@ static void window_setup_x11(
|
||||
WinTCDpaDesktopWindowPrivate* priv =
|
||||
wintc_dpa_desktop_window_get_instance_private(wnd);
|
||||
|
||||
// Directly size the window based on monitor geometry
|
||||
//
|
||||
GdkRectangle geometry;
|
||||
|
||||
gdk_monitor_get_geometry(priv->monitor, &geometry);
|
||||
|
||||
Reference in New Issue
Block a user