1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include "screen-size.h"
#include <gtk/gtk.h>
static gint
get_window_scaling_factor (void)
{
GValue gvalue = G_VALUE_INIT;
GdkScreen *screen;
g_value_init (&gvalue, G_TYPE_INT);
screen = gdk_screen_get_default ();
if (gdk_screen_get_setting (screen, "gdk-window-scaling-factor", &gvalue))
return g_value_get_int (&gvalue);
return 1;
}
void
screen_size_get_dimensions (gint *width,
gint *height)
{
GdkScreen *screen;
GdkWindow *window;
gint scale;
scale = get_window_scaling_factor ();
screen = gdk_screen_get_default ();
window = gdk_screen_get_root_window (screen);
*width = gdk_window_get_width (window) / scale;
*height = gdk_window_get_height (window) / scale;
}
|