Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
xfce4-screensaver
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
56
Issues
56
List
Boards
Labels
Service Desk
Milestones
Custom Issue Tracker
Custom Issue Tracker
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Apps
xfce4-screensaver
Commits
16b09f8f
Commit
16b09f8f
authored
Oct 03, 2018
by
Sean Davis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More header cleanup
parent
2c742bea
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
14 additions
and
539 deletions
+14
-539
src/xfce-rr.c
src/xfce-rr.c
+14
-373
src/xfce-rr.h
src/xfce-rr.h
+0
-55
src/xfcekbd-config-private.h
src/xfcekbd-config-private.h
+0
-26
src/xfcekbd-keyboard-config.c
src/xfcekbd-keyboard-config.c
+0
-69
src/xfcemenu-tree.h
src/xfcemenu-tree.h
+0
-16
No files found.
src/xfce-rr.c
View file @
16b09f8f
...
...
@@ -157,6 +157,16 @@ static void mode_initialize (XfceRRMode *mode,
static
XfceRRMode
*
mode_copy
(
const
XfceRRMode
*
from
);
static
void
mode_free
(
XfceRRMode
*
mode
);
static
guint
xfce_rr_mode_get_width
(
XfceRRMode
*
mode
);
static
guint
xfce_rr_mode_get_height
(
XfceRRMode
*
mode
);
static
XfceRRMode
**
xfce_rr_output_list_modes
(
XfceRROutput
*
output
);
static
void
xfce_rr_screen_get_ranges
(
XfceRRScreen
*
screen
,
int
*
min_width
,
int
*
max_width
,
int
*
min_height
,
int
*
max_height
);
static
void
xfce_rr_screen_finalize
(
GObject
*
);
static
void
xfce_rr_screen_set_property
(
GObject
*
,
guint
,
const
GValue
*
,
GParamSpec
*
);
...
...
@@ -834,26 +844,6 @@ xfce_rr_screen_new (GdkScreen *screen,
return
g_initable_new
(
XFCE_TYPE_RR_SCREEN
,
NULL
,
error
,
"gdk-screen"
,
screen
,
NULL
);
}
void
xfce_rr_screen_set_size
(
XfceRRScreen
*
screen
,
int
width
,
int
height
,
int
mm_width
,
int
mm_height
)
{
g_return_if_fail
(
XFCE_IS_RR_SCREEN
(
screen
));
#ifdef HAVE_RANDR
GdkDisplay
*
display
;
display
=
gdk_display_get_default
();
gdk_x11_display_error_trap_push
(
display
);
XRRSetScreenSize
(
screen
->
priv
->
xdisplay
,
screen
->
priv
->
xroot
,
width
,
height
,
mm_width
,
mm_height
);
gdk_x11_display_error_trap_pop_ignored
(
display
);
#endif
}
/**
* xfce_rr_screen_get_ranges:
* @screen: a #XfceRRScreen
...
...
@@ -864,7 +854,7 @@ xfce_rr_screen_set_size (XfceRRScreen *screen,
*
* Get the ranges of the screen
*/
void
static
void
xfce_rr_screen_get_ranges
(
XfceRRScreen
*
screen
,
int
*
min_width
,
int
*
max_width
,
...
...
@@ -990,22 +980,6 @@ xfce_rr_screen_list_crtcs (XfceRRScreen *screen)
return
screen
->
priv
->
info
->
crtcs
;
}
/**
* xfce_rr_screen_list_outputs:
*
* List all outputs
*
* Returns: (array zero-terminated=1) (transfer none):
*/
XfceRROutput
**
xfce_rr_screen_list_outputs
(
XfceRRScreen
*
screen
)
{
g_return_val_if_fail
(
XFCE_IS_RR_SCREEN
(
screen
),
NULL
);
g_return_val_if_fail
(
screen
->
priv
->
info
!=
NULL
,
NULL
);
return
screen
->
priv
->
info
->
outputs
;
}
/* XfceRROutput */
static
XfceRROutput
*
output_new
(
ScreenInfo
*
info
,
RROutput
id
)
...
...
@@ -1262,52 +1236,6 @@ output_free (XfceRROutput *output)
g_slice_free
(
XfceRROutput
,
output
);
}
const
guint8
*
xfce_rr_output_get_edid_data
(
XfceRROutput
*
output
)
{
g_return_val_if_fail
(
output
!=
NULL
,
NULL
);
return
output
->
edid_data
;
}
/**
* xfce_rr_screen_get_output_by_name:
*
* Returns: (transfer none): the output identified by @name
*/
XfceRROutput
*
xfce_rr_screen_get_output_by_name
(
XfceRRScreen
*
screen
,
const
char
*
name
)
{
int
i
;
g_return_val_if_fail
(
XFCE_IS_RR_SCREEN
(
screen
),
NULL
);
g_return_val_if_fail
(
screen
->
priv
->
info
!=
NULL
,
NULL
);
for
(
i
=
0
;
screen
->
priv
->
info
->
outputs
[
i
]
!=
NULL
;
++
i
)
{
XfceRROutput
*
output
=
screen
->
priv
->
info
->
outputs
[
i
];
if
(
strcmp
(
output
->
name
,
name
)
==
0
)
return
output
;
}
return
NULL
;
}
/**
* xfce_rr_output_get_crtc:
* @output: a #XfceRROutput
* Returns: (transfer none):
*/
XfceRRCrtc
*
xfce_rr_output_get_crtc
(
XfceRROutput
*
output
)
{
g_return_val_if_fail
(
output
!=
NULL
,
NULL
);
return
output
->
current_crtc
;
}
gboolean
_xfce_rr_output_name_is_laptop
(
const
char
*
name
)
{
...
...
@@ -1324,131 +1252,19 @@ _xfce_rr_output_name_is_laptop (const char *name)
return
FALSE
;
}
gboolean
xfce_rr_output_is_laptop
(
XfceRROutput
*
output
)
{
g_return_val_if_fail
(
output
!=
NULL
,
FALSE
);
if
(
!
output
->
connected
)
return
FALSE
;
if
(
g_strcmp0
(
output
->
connector_type
,
XFCE_RR_CONNECTOR_TYPE_PANEL
)
==
0
)
return
TRUE
;
/* Fallback (see https://bugs.freedesktop.org/show_bug.cgi?id=26736) */
return
_xfce_rr_output_name_is_laptop
(
output
->
name
);
}
const
char
*
xfce_rr_output_get_name
(
XfceRROutput
*
output
)
{
g_assert
(
output
!=
NULL
);
return
output
->
name
;
}
/**
* xfce_rr_output_get_preferred_mode:
* @output: a #XfceRROutput
* Returns: (transfer none):
*/
XfceRRMode
*
xfce_rr_output_get_preferred_mode
(
XfceRROutput
*
output
)
{
g_return_val_if_fail
(
output
!=
NULL
,
NULL
);
if
(
output
->
n_preferred
)
return
output
->
modes
[
0
];
return
NULL
;
}
/**
* xfce_rr_output_list_modes:
* @output: a #XfceRROutput
* Returns: (array zero-terminated=1) (transfer none):
*/
XfceRRMode
**
static
XfceRRMode
**
xfce_rr_output_list_modes
(
XfceRROutput
*
output
)
{
g_return_val_if_fail
(
output
!=
NULL
,
NULL
);
return
output
->
modes
;
}
gboolean
xfce_rr_output_is_connected
(
XfceRROutput
*
output
)
{
g_return_val_if_fail
(
output
!=
NULL
,
FALSE
);
return
output
->
connected
;
}
gboolean
xfce_rr_output_supports_mode
(
XfceRROutput
*
output
,
XfceRRMode
*
mode
)
{
int
i
;
g_return_val_if_fail
(
output
!=
NULL
,
FALSE
);
g_return_val_if_fail
(
mode
!=
NULL
,
FALSE
);
for
(
i
=
0
;
output
->
modes
[
i
]
!=
NULL
;
++
i
)
{
if
(
output
->
modes
[
i
]
==
mode
)
return
TRUE
;
}
return
FALSE
;
}
gboolean
xfce_rr_output_can_clone
(
XfceRROutput
*
output
,
XfceRROutput
*
clone
)
{
int
i
;
g_return_val_if_fail
(
output
!=
NULL
,
FALSE
);
g_return_val_if_fail
(
clone
!=
NULL
,
FALSE
);
for
(
i
=
0
;
output
->
clones
[
i
]
!=
NULL
;
++
i
)
{
if
(
output
->
clones
[
i
]
==
clone
)
return
TRUE
;
}
return
FALSE
;
}
gboolean
xfce_rr_output_get_is_primary
(
XfceRROutput
*
output
)
{
#ifdef HAVE_RANDR
return
output
->
info
->
primary
==
output
->
id
;
#else
return
FALSE
;
#endif
}
void
xfce_rr_screen_set_primary_output
(
XfceRRScreen
*
screen
,
XfceRROutput
*
output
)
{
#ifdef HAVE_RANDR
XfceRRScreenPrivate
*
priv
;
g_return_if_fail
(
XFCE_IS_RR_SCREEN
(
screen
));
priv
=
screen
->
priv
;
RROutput
id
;
if
(
output
)
id
=
output
->
id
;
else
id
=
None
;
XRRSetOutputPrimary
(
priv
->
xdisplay
,
priv
->
xroot
,
id
);
#endif
}
/* XfceRRCrtc */
typedef
struct
{
...
...
@@ -1481,103 +1297,6 @@ xfce_rr_rotation_from_xrotation (Rotation r)
return
result
;
}
static
Rotation
xrotation_from_rotation
(
XfceRRRotation
r
)
{
int
i
;
Rotation
result
=
0
;
for
(
i
=
0
;
i
<
G_N_ELEMENTS
(
rotation_map
);
++
i
)
{
if
(
r
&
rotation_map
[
i
].
rot
)
result
|=
rotation_map
[
i
].
xrot
;
}
return
result
;
}
gboolean
xfce_rr_crtc_set_config_with_time
(
XfceRRCrtc
*
crtc
,
guint32
timestamp
,
int
x
,
int
y
,
XfceRRMode
*
mode
,
XfceRRRotation
rotation
,
XfceRROutput
**
outputs
,
int
n_outputs
,
GError
**
error
)
{
#ifdef HAVE_RANDR
ScreenInfo
*
info
;
GArray
*
output_ids
;
GdkDisplay
*
display
;
Status
status
;
gboolean
result
;
int
i
;
g_return_val_if_fail
(
crtc
!=
NULL
,
FALSE
);
g_return_val_if_fail
(
mode
!=
NULL
||
outputs
==
NULL
||
n_outputs
==
0
,
FALSE
);
g_return_val_if_fail
(
error
==
NULL
||
*
error
==
NULL
,
FALSE
);
info
=
crtc
->
info
;
if
(
mode
)
{
if
(
x
+
mode
->
width
>
info
->
max_width
||
y
+
mode
->
height
>
info
->
max_height
)
{
g_set_error
(
error
,
XFCE_RR_ERROR
,
XFCE_RR_ERROR_BOUNDS_ERROR
,
/* Translators: the "position", "size", and "maximum"
* words here are not keywords; please translate them
* as usual. A CRTC is a CRT Controller (this is X terminology) */
_
(
"requested position/size for CRTC %d is outside the allowed limit: "
"position=(%d, %d), size=(%d, %d), maximum=(%d, %d)"
),
(
int
)
crtc
->
id
,
x
,
y
,
mode
->
width
,
mode
->
height
,
info
->
max_width
,
info
->
max_height
);
return
FALSE
;
}
}
output_ids
=
g_array_new
(
FALSE
,
FALSE
,
sizeof
(
RROutput
));
if
(
outputs
)
{
for
(
i
=
0
;
i
<
n_outputs
;
++
i
)
g_array_append_val
(
output_ids
,
outputs
[
i
]
->
id
);
}
display
=
gdk_display_get_default
();
gdk_x11_display_error_trap_push
(
display
);
status
=
XRRSetCrtcConfig
(
DISPLAY
(
crtc
),
info
->
resources
,
crtc
->
id
,
timestamp
,
x
,
y
,
mode
?
mode
->
id
:
None
,
xrotation_from_rotation
(
rotation
),
(
RROutput
*
)
output_ids
->
data
,
output_ids
->
len
);
g_array_free
(
output_ids
,
TRUE
);
if
(
gdk_x11_display_error_trap_pop
(
display
)
||
status
!=
RRSetConfigSuccess
)
{
/* Translators: CRTC is a CRT Controller (this is X terminology).
* It is *very* unlikely that you'll ever get this error, so it is
* only listed for completeness. */
g_set_error
(
error
,
XFCE_RR_ERROR
,
XFCE_RR_ERROR_RANDR_ERROR
,
_
(
"could not set the configuration for CRTC %d"
),
(
int
)
crtc
->
id
);
return
FALSE
;
}
else
{
result
=
TRUE
;
}
return
result
;
#else
return
FALSE
;
#endif
/* HAVE_RANDR */
}
/**
* xfce_rr_crtc_get_current_mode:
* @crtc: a #XfceRRCrtc
...
...
@@ -1591,70 +1310,6 @@ xfce_rr_crtc_get_current_mode (XfceRRCrtc *crtc)
return
crtc
->
current_mode
;
}
guint32
xfce_rr_crtc_get_id
(
XfceRRCrtc
*
crtc
)
{
g_return_val_if_fail
(
crtc
!=
NULL
,
0
);
return
crtc
->
id
;
}
gboolean
xfce_rr_crtc_can_drive_output
(
XfceRRCrtc
*
crtc
,
XfceRROutput
*
output
)
{
int
i
;
g_return_val_if_fail
(
crtc
!=
NULL
,
FALSE
);
g_return_val_if_fail
(
output
!=
NULL
,
FALSE
);
for
(
i
=
0
;
crtc
->
possible_outputs
[
i
]
!=
NULL
;
++
i
)
{
if
(
crtc
->
possible_outputs
[
i
]
==
output
)
return
TRUE
;
}
return
FALSE
;
}
/* FIXME: merge with get_mode()? */
/**
* xfce_rr_crtc_get_position:
* @crtc: a #XfceRRCrtc
* @x: (out) (allow-none):
* @y: (out) (allow-none):
*/
void
xfce_rr_crtc_get_position
(
XfceRRCrtc
*
crtc
,
int
*
x
,
int
*
y
)
{
g_return_if_fail
(
crtc
!=
NULL
);
if
(
x
)
*
x
=
crtc
->
x
;
if
(
y
)
*
y
=
crtc
->
y
;
}
/* FIXME: merge with get_mode()? */
XfceRRRotation
xfce_rr_crtc_get_current_rotation
(
XfceRRCrtc
*
crtc
)
{
g_assert
(
crtc
!=
NULL
);
return
crtc
->
current_rotation
;
}
gboolean
xfce_rr_crtc_supports_rotation
(
XfceRRCrtc
*
crtc
,
XfceRRRotation
rotation
)
{
g_return_val_if_fail
(
crtc
!=
NULL
,
FALSE
);
return
(
crtc
->
rotations
&
rotation
);
}
static
XfceRRCrtc
*
crtc_new
(
ScreenInfo
*
info
,
RROutput
id
)
{
...
...
@@ -1790,28 +1445,14 @@ mode_new (ScreenInfo *info, RRMode id)
return
mode
;
}
guint32
xfce_rr_mode_get_id
(
XfceRRMode
*
mode
)
{
g_return_val_if_fail
(
mode
!=
NULL
,
0
);
return
mode
->
id
;
}
guint
static
guint
xfce_rr_mode_get_width
(
XfceRRMode
*
mode
)
{
g_return_val_if_fail
(
mode
!=
NULL
,
0
);
return
mode
->
width
;
}
int
xfce_rr_mode_get_freq
(
XfceRRMode
*
mode
)
{
g_return_val_if_fail
(
mode
!=
NULL
,
0
);
return
(
mode
->
freq
)
/
1000
;
}
guint
static
guint
xfce_rr_mode_get_height
(
XfceRRMode
*
mode
)
{
g_return_val_if_fail
(
mode
!=
NULL
,
0
);
...
...
src/xfce-rr.h
View file @
16b09f8f
...
...
@@ -90,67 +90,12 @@ GType xfce_rr_mode_get_type (void);
/* XfceRRScreen */
XfceRRScreen
*
xfce_rr_screen_new
(
GdkScreen
*
screen
,
GError
**
error
);
XfceRROutput
**
xfce_rr_screen_list_outputs
(
XfceRRScreen
*
screen
);
XfceRRCrtc
**
xfce_rr_screen_list_crtcs
(
XfceRRScreen
*
screen
);
void
xfce_rr_screen_set_size
(
XfceRRScreen
*
screen
,
int
width
,
int
height
,
int
mm_width
,
int
mm_height
);
gboolean
xfce_rr_screen_refresh
(
XfceRRScreen
*
screen
,
GError
**
error
);
XfceRROutput
*
xfce_rr_screen_get_output_by_name
(
XfceRRScreen
*
screen
,
const
char
*
name
);
void
xfce_rr_screen_get_ranges
(
XfceRRScreen
*
screen
,
int
*
min_width
,
int
*
max_width
,
int
*
min_height
,
int
*
max_height
);
void
xfce_rr_screen_set_primary_output
(
XfceRRScreen
*
screen
,
XfceRROutput
*
output
);
/* XfceRROutput */
const
char
*
xfce_rr_output_get_name
(
XfceRROutput
*
output
);
gboolean
xfce_rr_output_is_connected
(
XfceRROutput
*
output
);
const
guint8
*
xfce_rr_output_get_edid_data
(
XfceRROutput
*
output
);
XfceRRCrtc
*
xfce_rr_output_get_crtc
(
XfceRROutput
*
output
);
gboolean
xfce_rr_output_is_laptop
(
XfceRROutput
*
output
);
gboolean
xfce_rr_output_can_clone
(
XfceRROutput
*
output
,
XfceRROutput
*
clone
);
XfceRRMode
**
xfce_rr_output_list_modes
(
XfceRROutput
*
output
);
XfceRRMode
*
xfce_rr_output_get_preferred_mode
(
XfceRROutput
*
output
);
gboolean
xfce_rr_output_supports_mode
(
XfceRROutput
*
output
,
XfceRRMode
*
mode
);
gboolean
xfce_rr_output_get_is_primary
(
XfceRROutput
*
output
);
/* XfceRRMode */
guint32
xfce_rr_mode_get_id
(
XfceRRMode
*
mode
);
guint
xfce_rr_mode_get_width
(
XfceRRMode
*
mode
);
guint
xfce_rr_mode_get_height
(
XfceRRMode
*
mode
);
int
xfce_rr_mode_get_freq
(
XfceRRMode
*
mode
);
/* XfceRRCrtc */
guint32
xfce_rr_crtc_get_id
(
XfceRRCrtc
*
crtc
);
gboolean
xfce_rr_crtc_set_config_with_time
(
XfceRRCrtc
*
crtc
,
guint32
timestamp
,
int
x
,
int
y
,
XfceRRMode
*
mode
,
XfceRRRotation
rotation
,
XfceRROutput
**
outputs
,
int
n_outputs
,
GError
**
error
);
gboolean
xfce_rr_crtc_can_drive_output
(
XfceRRCrtc
*
crtc
,
XfceRROutput
*
output
);
XfceRRMode
*
xfce_rr_crtc_get_current_mode
(
XfceRRCrtc
*
crtc
);
void
xfce_rr_crtc_get_position
(
XfceRRCrtc
*
crtc
,
int
*
x
,
int
*
y
);
XfceRRRotation
xfce_rr_crtc_get_current_rotation
(
XfceRRCrtc
*
crtc
);
gboolean
xfce_rr_crtc_supports_rotation
(
XfceRRCrtc
*
crtc
,
XfceRRRotation
rotation
);
gboolean
xfce_rr_crtc_get_gamma
(
XfceRRCrtc
*
crtc
,
int
*
size
,
...
...
src/xfcekbd-config-private.h
View file @
16b09f8f
...
...
@@ -37,31 +37,5 @@ extern void xfcekbd_keyboard_config_options_set (XfcekbdKeyboardConfig *
gint
idx
,
const
gchar
*
group_name
,
const
gchar
*
option_name
);
extern
gboolean
xfcekbd_keyboard_config_options_is_set
(
XfcekbdKeyboardConfig
*
kbd_config
,
const
gchar
*
group_name
,
const
gchar
*
option_name
);
extern
gboolean
xfcekbd_keyboard_config_dump_settings
(
XfcekbdKeyboardConfig
*
kbd_config
,
const
char
*
file_name
);
extern
gboolean
xfcekbd_keyboard_config_get_lv_descriptions
(
XklConfigRegistry
*
config_registry
,
const
gchar
*
layout_name
,
const
gchar
*
variant_name
,
gchar
**
layout_short_descr
,
gchar
**
layout_descr
,
gchar
**
variant_short_descr
,
gchar
**
variant_descr
);
#endif
src/xfcekbd-keyboard-config.c
View file @
16b09f8f
...
...
@@ -47,57 +47,6 @@ const gchar *XFCEKBD_KEYBOARD_CONFIG_ACTIVE[] = {
XFCEKBD_KEYBOARD_CONFIG_KEY_OPTIONS
};
/*
* static common functions
*/
gboolean
xfcekbd_keyboard_config_get_lv_descriptions
(
XklConfigRegistry
*
config_registry
,
const
gchar
*
layout_name
,
const
gchar
*
variant_name
,
gchar
**
layout_short_descr
,
gchar
**
layout_descr
,
gchar
**
variant_short_descr
,
gchar
**
variant_descr
)
{
/* TODO make it not static */
static
XklConfigItem
*
litem
=
NULL
;
static
XklConfigItem
*
vitem
=
NULL
;
if
(
litem
==
NULL
)
litem
=
xkl_config_item_new
();
if
(
vitem
==
NULL
)
vitem
=
xkl_config_item_new
();
layout_name
=
g_strdup
(
layout_name
);
g_snprintf
(
litem
->
name
,
sizeof
litem
->
name
,
"%s"
,
layout_name
);
if
(
xkl_config_registry_find_layout
(
config_registry
,
litem
))
{
*
layout_short_descr
=
litem
->
short_description
;
*
layout_descr
=
litem
->
description
;
}
else
*
layout_short_descr
=
*
layout_descr
=
NULL
;
if
(
variant_name
!=
NULL
)
{
variant_name
=
g_strdup
(
variant_name
);
g_snprintf
(
vitem
->
name
,
sizeof
vitem
->
name
,
"%s"
,
variant_name
);
if
(
xkl_config_registry_find_variant
(
config_registry
,
layout_name
,
vitem
))
{
*
variant_short_descr
=
vitem
->
short_description
;
*
variant_descr
=
vitem
->
description
;
}
else
*
variant_short_descr
=
*
variant_descr
=
NULL
;
g_free
((
char
*
)
variant_name
);
}
else
*
variant_descr
=
NULL
;
g_free
((
char
*
)
layout_name
);
return
*
layout_descr
!=
NULL
;
}
/*
* extern common functions
*/
...
...
@@ -290,24 +239,6 @@ xfcekbd_keyboard_config_options_set (XfcekbdKeyboardConfig * kbd_config,
kbd_config
->
options
[
idx
]
=
g_strdup
(
merged
);
}
gboolean
xfcekbd_keyboard_config_options_is_set
(
XfcekbdKeyboardConfig
*
kbd_config
,
const
gchar
*
group_name
,
const
gchar
*
option_name
)
{
gchar
**
p
=
kbd_config
->
options
;
const
gchar
*
merged
=