Merge lp:~jgonzalezdr/cairo-dock-plug-ins/suspend-workaround-applet into lp:~cairo-dock-team/cairo-dock-plug-ins/plug-ins

Proposed by Jesús González on 2014-09-05
Status: Needs review
Proposed branch: lp:~jgonzalezdr/cairo-dock-plug-ins/suspend-workaround-applet
Merge into: lp:~cairo-dock-team/cairo-dock-plug-ins/plug-ins
Diff against target: 411 lines (+341/-0)
10 files modified
CMakeLists.txt (+14/-0)
Suspend-Workaround/CMakeLists.txt (+2/-0)
Suspend-Workaround/data/CMakeLists.txt (+7/-0)
Suspend-Workaround/data/Suspend-Workaround.conf.in (+8/-0)
Suspend-Workaround/src/CMakeLists.txt (+38/-0)
Suspend-Workaround/src/applet-config.h (+30/-0)
Suspend-Workaround/src/applet-init.c (+157/-0)
Suspend-Workaround/src/applet-init.h (+31/-0)
Suspend-Workaround/src/applet-struct.h (+47/-0)
copyright (+7/-0)
To merge this branch: bzr merge lp:~jgonzalezdr/cairo-dock-plug-ins/suspend-workaround-applet
Reviewer Review Type Date Requested Status
Cairo-Dock Devs 2014-09-05 Pending
Review via email: mp+233496@code.launchpad.net

Description of the change

Added Suspend-Workaround applet that fixes the icon corruption that happens with some graphic cards (e.g. nvidia) when suspending the computer.

Fixes bug #535065 "symptoms" with a workaround that doesn't need external scripts added and configured manually by affected users (as proposed in https://bugs.launchpad.net/cairo-dock-plug-ins/+bug/535065/comments/14), therefore it's a lot more user-friendly solution and it's more robust (the python script solution sometimes fails, maybe because dbus messages to reboot cairo-dock are lost).

To test it just install the applet in an affected computer and enable it, suspend the computer, resume, and voilà... icons aren't corrupted any more.

To post a comment you must log in.
Matthieu Baerts (matttbe) wrote :

Hello and thank you for this new applet!

As you said, it's easier and a more user-friendly solution to just enable an applet than downloading an external script and launching it at startup.

But the only goal of this applet is to provide a workaround to fix a bug in the Nvidia drivers and this is why we never add this solution in an applet... (Indeed it's better to fix the bug than having a lot of workarounds which are not so easy to maintain)

On the other hand, I agree with you: this bug is known and it seems Nvidia devs will not fix it soon. We have to find a solution!
Why not an even easier solution for the end user? Here we'll have a new plugin but the user will have to enable it (and we can't enable it by default, it has "a cost", it's just a workaround for a minority of users). Why not detecting the video drivers and then automatically reload the icons (or just the dynamic ones) if there is a change? We'll have to do that in the Core, a bit like the solution that we used before for the bug with the Intel 4000HD video card.

**@fabounet**: what do you think about that? It will not add any new dependences, just connect to a new signal only if proprietary NVidia drivers are used.

Matthieu Baerts (matttbe) wrote :

PS: if you want, there are some tips there about how to write a new applet: http://glx-dock.org/ww_page.php?p=Write an applet
(e.g. you can use 'myData' instead of 'myDataPtr', no need to add 'APPLET_LOG' in log messages but 'sed' can help you to only print lines linked to your applet, etc.)

Fabounet (fabounet03) wrote :

 **@fabounet**: what do you think about that? It will not add any new
dependences, just connect to a new signal only if proprietary NVidia
drivers are used.

I'm ok to add a workaround for this nvidia bug, however it should be done
in the core, not be an option, and only be enabled for nVidia cards (or any
cards that need this) and if opengl is used.
So, I would say probably in the openGL manager.

2014-09-07 22:53 GMT+02:00 Matthieu Baerts <email address hidden>:

> => http://glx-dock.org/ww_page.php?p=Write%20an%20applet
> --
>
> https://code.launchpad.net/~jgonzalezdr/cairo-dock-plug-ins/suspend-workaround-applet/+merge/233496
> Your team Cairo-Dock Devs is requested to review the proposed merge of
> lp:~jgonzalezdr/cairo-dock-plug-ins/suspend-workaround-applet into
> lp:cairo-dock-plug-ins.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~cairo-dock-team
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~cairo-dock-team
> More help : https://help.launchpad.net/ListHelp
>

Jesús González (jgonzalezdr) wrote :

Maybe the applet could be modified to an always activated applet (non-stoppable, I think that this can be easily done by just not declaring a stop function, isn't it?) that checks on initialization whether the graphics card is affected, and just does nothing if not needed.

This way, the applet would remain out of the core, and could be excluded from compilation.

Detecting an nvidia card could be done in many ways:
  * Querying the X server if the NV-CONTROL extension is present by using XQueryExtension() /
    XNVCTRLQueryExtension()
  * Checking if /sys/module/nvidia/ exists (the actual driver version could be also checked)
  * Checking if /proc/modules reports the nvidia kernel module being used (but that output's format
    depends on the kernel version, so it's not a very good idea)
  * A combination of the above methods.

Anyway, checking the reports about this bug, it seems that not all nvidia cards are affected (using propietary drivers, that is), and that there might be other cards affected too (maybe some Intels?), therefore an option to force the workaround activation could be useful.

I'll try to modify the applet to do this in the next days.

Matthieu Baerts (matttbe) wrote :

If we add this workaround in a new applet, we can easily disable it. But on the other hand it also means that the user has to enable it. We could automatically enable (like the gnome-integration applet) it but because this workaround doesn't need any new dependence, it could be managed by the core. To disable it, maybe we could add a new option or a flag to not compile the workaround.

The dock is already detecting the OpenGL driver in src/gldi/cairo-dock-opengl.c => https://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/cairo-dock/view/head:/src/gldit/cairo-dock-opengl.c#L296

We don't like workarounds but sometimes it's needed... And it's really not easy to know where it's the best place (read: the less ugly one :-P) to add a workaround :-)

@fabounet: what do you think about that.

Fabounet (fabounet03) wrote :

As I said, the workaround is OK and the code is OK too, it just needs to be
placed in the OpenGL manager (because it knows what graphic card is being
used, plus it's a problem about textures becoming corrupted on suspend)

2014-09-20 18:23 GMT+02:00 Matthieu Baerts <email address hidden>:

> If we add this workaround in a new applet, we can easily disable it. But
> on the other hand it also means that the user has to enable it. We could
> automatically enable (like the gnome-integration applet) it but because
> this workaround doesn't need any new dependence, it could be managed by the
> core. To disable it, maybe we could add a new option or a flag to not
> compile the workaround.
>
> The dock is already detecting the OpenGL driver in
> src/gldi/cairo-dock-opengl.c =>
> https://bazaar.launchpad.net/~cairo-dock-team/cairo-dock-core/cairo-dock/view/head:/src/gldit/cairo-dock-opengl.c#L296
>
> We don't like workarounds but sometimes it's needed... And it's really not
> easy to know where it's the best place (read: the less ugly one :-P) to add
> a workaround :-)
>
> @fabounet: what do you think about that.
> --
>
> https://code.launchpad.net/~jgonzalezdr/cairo-dock-plug-ins/suspend-workaround-applet/+merge/233496
> Your team Cairo-Dock Devs is requested to review the proposed merge of
> lp:~jgonzalezdr/cairo-dock-plug-ins/suspend-workaround-applet into
> lp:cairo-dock-plug-ins.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~cairo-dock-team
> Post to : <email address hidden>
> Unsubscribe : https://launchpad.net/~cairo-dock-team
> More help : https://help.launchpad.net/ListHelp
>

Unmerged revisions

3119. By Jesús González on 2014-09-05

Added copyright info for the Suspend-Workaround applet

3118. By Jesús González on 2014-09-03

Added Suspend-Workaround applet that fixes the icon corruption that happens with some graphic cards (e.g. nvidia) when suspending the computer

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2014-08-17 22:45:21 +0000
+++ CMakeLists.txt 2014-09-05 11:39:20 +0000
@@ -1468,6 +1468,19 @@
1468 endif()1468 endif()
1469endif()1469endif()
14701470
1471############# SUSPEND-WORKAROUND #################
1472set (with_suspend_workaround no)
1473if (enable-suspend-workaround)
1474 message (STATUS "> Suspend-Workaround:")
1475 set (GETTEXT_SUSPEND_WORKAROUND ${GETTEXT_PLUGINS})
1476 set (VERSION_SUSPEND_WORKAROUND "1.0.0")
1477 set (PACKAGE_SUSPEND_WORKAROUND "cd-SuspendWorkaround")
1478 set (with_suspend_workaround yes)
1479 set (suspendworkarounddatadir "${pluginsdatadir}/Suspend-Workaround")
1480 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Suspend-Workaround/data/Suspend-Workaround.conf.in ${CMAKE_CURRENT_BINARY_DIR}/Suspend-Workaround/data/Suspend-Workaround.conf)
1481 add_subdirectory (Suspend-Workaround)
1482endif()
1483
1471message ("")1484message ("")
1472message (STATUS "===============")1485message (STATUS "===============")
1473message (STATUS "Language build:")1486message (STATUS "Language build:")
@@ -1502,6 +1515,7 @@
1502message (STATUS " - with Terminal applet: ${with_terminal}")1515message (STATUS " - with Terminal applet: ${with_terminal}")
1503message (STATUS " - with Weblets applet: ${with_weblets}")1516message (STATUS " - with Weblets applet: ${with_weblets}")
1504message (STATUS " - with Xgamma applet: ${with_xgamma}")1517message (STATUS " - with Xgamma applet: ${with_xgamma}")
1518message (STATUS " - with Suspend-Workaround applet: ${with_suspend_workaround}")
1505message (STATUS "Add On:")1519message (STATUS "Add On:")
1506message (STATUS " - with Sound-Menu support: ${with_soundmenu}")1520message (STATUS " - with Sound-Menu support: ${with_soundmenu}")
1507message (STATUS " - with Screen Resolution support: ${with_xrandr}")1521message (STATUS " - with Screen Resolution support: ${with_xrandr}")
15081522
=== added directory 'Suspend-Workaround'
=== added file 'Suspend-Workaround/CMakeLists.txt'
--- Suspend-Workaround/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ Suspend-Workaround/CMakeLists.txt 2014-09-05 11:39:20 +0000
@@ -0,0 +1,2 @@
1add_subdirectory(src)
2add_subdirectory(data)
03
=== added directory 'Suspend-Workaround/data'
=== added file 'Suspend-Workaround/data/CMakeLists.txt'
--- Suspend-Workaround/data/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ Suspend-Workaround/data/CMakeLists.txt 2014-09-05 11:39:20 +0000
@@ -0,0 +1,7 @@
1
2########### install files ###############
3
4install (FILES ${CMAKE_CURRENT_BINARY_DIR}/Suspend-Workaround.conf
5 icon.png
6 DESTINATION ${suspendworkarounddatadir})
7
08
=== added file 'Suspend-Workaround/data/Suspend-Workaround.conf.in'
--- Suspend-Workaround/data/Suspend-Workaround.conf.in 1970-01-01 00:00:00 +0000
+++ Suspend-Workaround/data/Suspend-Workaround.conf.in 2014-09-05 11:39:20 +0000
@@ -0,0 +1,8 @@
1#@VERSION_SUSPEND_WORKAROUND@
2
3#[gtk-about]
4[Icon]
5
6#A
7handbook=Suspend-Workaround
8
09
=== added file 'Suspend-Workaround/data/icon.png'
1Binary files Suspend-Workaround/data/icon.png 1970-01-01 00:00:00 +0000 and Suspend-Workaround/data/icon.png 2014-09-05 11:39:20 +0000 differ10Binary files Suspend-Workaround/data/icon.png 1970-01-01 00:00:00 +0000 and Suspend-Workaround/data/icon.png 2014-09-05 11:39:20 +0000 differ
=== added directory 'Suspend-Workaround/src'
=== added file 'Suspend-Workaround/src/CMakeLists.txt'
--- Suspend-Workaround/src/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ Suspend-Workaround/src/CMakeLists.txt 2014-09-05 11:39:20 +0000
@@ -0,0 +1,38 @@
1
2########### sources ###############
3
4SET(MODULE_SRCS
5 applet-struct.h
6 applet-init.c
7 applet-init.h
8 applet-config.h
9)
10
11add_library(${PACKAGE_SUSPEND_WORKAROUND} SHARED ${MODULE_SRCS})
12
13########### compil ###############
14add_definitions (-DMY_APPLET_SHARE_DATA_DIR="${suspendworkarounddatadir}")
15add_definitions (-DMY_APPLET_PREVIEW_FILE="icon.png")
16add_definitions (-DMY_APPLET_CONF_FILE="Suspend-Workaround.conf")
17add_definitions (-DMY_APPLET_USER_DATA_DIR="Suspend-Workaround")
18add_definitions (-DMY_APPLET_VERSION="${VERSION_SUSPEND_WORKAROUND}")
19add_definitions (-DMY_APPLET_GETTEXT_DOMAIN="${GETTEXT_SUSPEND_WORKAROUND}")
20add_definitions (-DMY_APPLET_DOCK_VERSION="${dock_version}")
21add_definitions (-DMY_APPLET_ICON_FILE="icon.png")
22### uncomment the following line to allow multi-instance applet.
23#add_definitions (-DCD_APPLET_MULTI_INSTANCE="1")
24### uncomment the following line to allow extended OpenGL drawing.
25#add_definitions (-DGL_GLEXT_PROTOTYPES="1")
26
27include_directories (
28 ${PACKAGE_INCLUDE_DIRS})
29
30link_directories (
31 ${PACKAGE_LIBRARY_DIRS})
32
33target_link_libraries (${PACKAGE_SUSPEND_WORKAROUND}
34 ${PACKAGE_LIBRARIES})
35
36########### install files ###############
37
38install(TARGETS ${PACKAGE_SUSPEND_WORKAROUND} DESTINATION ${pluginsdir})
039
=== added file 'Suspend-Workaround/src/applet-config.h'
--- Suspend-Workaround/src/applet-config.h 1970-01-01 00:00:00 +0000
+++ Suspend-Workaround/src/applet-config.h 2014-09-05 11:39:20 +0000
@@ -0,0 +1,30 @@
1/**
2* This file is a part of the Cairo-Dock project
3*
4* Copyright : (C) see the 'copyright' file.
5* E-mail : see the 'copyright' file.
6*
7* This program is free software; you can redistribute it and/or
8* modify it under the terms of the GNU General Public License
9* as published by the Free Software Foundation; either version 3
10* of the License, or (at your option) any later version.
11*
12* This program is distributed in the hope that it will be useful,
13* but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15* GNU General Public License for more details.
16* You should have received a copy of the GNU General Public License
17* along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20
21#ifndef __APPLET_CONFIG__
22#define __APPLET_CONFIG__
23
24#include <cairo-dock.h>
25
26
27CD_APPLET_CONFIG_H
28
29
30#endif
031
=== added file 'Suspend-Workaround/src/applet-init.c'
--- Suspend-Workaround/src/applet-init.c 1970-01-01 00:00:00 +0000
+++ Suspend-Workaround/src/applet-init.c 2014-09-05 11:39:20 +0000
@@ -0,0 +1,157 @@
1/**
2* This file is a part of the Cairo-Dock project
3*
4* Copyright : (C) see the 'copyright' file.
5* E-mail : see the 'copyright' file.
6*
7* This program is free software; you can redistribute it and/or
8* modify it under the terms of the GNU General Public License
9* as published by the Free Software Foundation; either version 3
10* of the License, or (at your option) any later version.
11*
12* This program is distributed in the hope that it will be useful,
13* but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15* GNU General Public License for more details.
16* You should have received a copy of the GNU General Public License
17* along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#include "stdlib.h"
21
22#include "applet-config.h"
23#include "applet-struct.h"
24#include "applet-init.h"
25
26#define SIGNAL_TYPE_LOGIN1 0
27#define SIGNAL_TYPE_UPOWER 1
28
29#define APPLET_NAME "Suspend-Workaround"
30#define APPLET_LOG APPLET_NAME " > "
31
32CD_APPLET_DEFINE_BEGIN( APPLET_NAME,
33 1, 0, 0,
34 CAIRO_DOCK_CATEGORY_APPLET_SYSTEM,
35 N_("This plug-in is a workaround that fixes the icon corruption that "
36 "happens with some graphic cards (e.g. nvidia) when suspending the computer"),
37 "Jesús González" )
38 pInterface->initModule = CD_APPLET_INIT_FUNC;
39 pInterface->stopModule = CD_APPLET_STOP_FUNC;
40 CD_APPLET_SET_CONTAINER_TYPE( CAIRO_DOCK_MODULE_IS_PLUGIN );
41 CD_APPLET_REDEFINE_TITLE (N_("Corruption-on-Suspend workaround"))
42CD_APPLET_DEFINE_END
43
44#define DBUS_POWER_OBJECT_INFO_SIZE 2
45
46struct _dbus_power_object_info dbus_power_object_info[DBUS_POWER_OBJECT_INFO_SIZE] =
47{
48 {
49 "org.freedesktop.login1", "/org/freedesktop/login1", "org.freedesktop.login1.Manager", "PrepareForSleep", G_TYPE_BOOLEAN,
50 },
51 {
52 "org.freedesktop.UPower", "/org/freedesktop/UPower", "org.freedesktop.UPower", "Resuming", G_TYPE_NONE,
53 }
54};
55
56static void _on_resuming(void)
57{
58 cd_message( APPLET_LOG "Resuming from sleep" );
59 cairo_dock_load_current_theme();
60}
61
62static void _on_prepare_for_sleep( DBusGProxy* proxy, gboolean going_to_sleep, gpointer userData )
63{
64 if( going_to_sleep )
65 {
66 cd_message( APPLET_LOG "Going to sleep" );
67 }
68 else
69 {
70 _on_resuming();
71 }
72}
73
74CD_APPLET_INIT_BEGIN
75
76 myDataPtr->power_object_info = NULL;
77
78 DBusGProxy *pMainProxy = cairo_dock_get_main_system_proxy();
79 if( pMainProxy == NULL )
80 {
81 cd_warning( APPLET_LOG "Can't get main system dbus proxy" );
82 return;
83 }
84
85 int pwrobj_index = 0;
86 gboolean pwrobj_found = FALSE;
87 while( (pwrobj_index < DBUS_POWER_OBJECT_INFO_SIZE) ) {
88 org_freedesktop_DBus_name_has_owner( pMainProxy, dbus_power_object_info[pwrobj_index].name, &pwrobj_found, NULL );
89 if( pwrobj_found )
90 {
91 break;
92 }
93 pwrobj_index++;
94 }
95
96 if( !pwrobj_found )
97 {
98 cd_warning( APPLET_LOG "Power management object not available on dbus" );
99 return;
100 }
101
102 myDataPtr->power_object_info = &dbus_power_object_info[pwrobj_index];
103
104 cd_message( APPLET_LOG "Power management object used is %s", myDataPtr->power_object_info->name );
105
106 myDataPtr->pProxy = cairo_dock_create_new_system_proxy( myDataPtr->power_object_info->name, myDataPtr->power_object_info->path, myDataPtr->power_object_info->interface );
107 if( myDataPtr->pProxy == NULL )
108 {
109 cd_warning( APPLET_LOG "Error accessing power management object on dbus" );
110 return;
111 }
112
113 if( myDataPtr->power_object_info->signal_type == SIGNAL_TYPE_UPOWER )
114 {
115 dbus_g_object_register_marshaller (
116 g_cclosure_marshal_VOID__VOID,
117 G_TYPE_NONE,
118 G_TYPE_INVALID);
119
120 dbus_g_proxy_add_signal( myDataPtr->pProxy, myDataPtr->power_object_info->resume_signal, G_TYPE_INVALID );
121 dbus_g_proxy_connect_signal( myDataPtr->pProxy, myDataPtr->power_object_info->resume_signal, G_CALLBACK( _on_resuming ), NULL, NULL );
122 }
123 else
124 {
125 dbus_g_object_register_marshaller (
126 g_cclosure_marshal_VOID__BOOLEAN,
127 G_TYPE_NONE,
128 G_TYPE_BOOLEAN,
129 G_TYPE_INVALID);
130
131 dbus_g_proxy_add_signal( myDataPtr->pProxy, myDataPtr->power_object_info->resume_signal, G_TYPE_BOOLEAN, G_TYPE_INVALID );
132 dbus_g_proxy_connect_signal( myDataPtr->pProxy, myDataPtr->power_object_info->resume_signal, G_CALLBACK( _on_prepare_for_sleep ), NULL, NULL );
133 }
134
135 cd_message( APPLET_LOG "Listening for power management events..." );
136
137CD_APPLET_INIT_END
138
139
140CD_APPLET_STOP_BEGIN
141
142 if( myDataPtr->pProxy != NULL )
143 {
144 if( myDataPtr->power_object_info->signal_type == SIGNAL_TYPE_UPOWER )
145 {
146 dbus_g_proxy_disconnect_signal( myDataPtr->pProxy, myDataPtr->power_object_info->resume_signal, G_CALLBACK( _on_resuming ), NULL);
147 }
148 else
149 {
150 dbus_g_proxy_disconnect_signal( myDataPtr->pProxy, myDataPtr->power_object_info->resume_signal, G_CALLBACK( _on_prepare_for_sleep ), NULL);
151 }
152 g_object_unref( myDataPtr->pProxy );
153 }
154
155 cd_message( APPLET_LOG "Stopped listening for power management events" );
156
157CD_APPLET_STOP_END
0158
=== added file 'Suspend-Workaround/src/applet-init.h'
--- Suspend-Workaround/src/applet-init.h 1970-01-01 00:00:00 +0000
+++ Suspend-Workaround/src/applet-init.h 2014-09-05 11:39:20 +0000
@@ -0,0 +1,31 @@
1/**
2* This file is a part of the Cairo-Dock project
3*
4* Copyright : (C) see the 'copyright' file.
5* E-mail : see the 'copyright' file.
6*
7* This program is free software; you can redistribute it and/or
8* modify it under the terms of the GNU General Public License
9* as published by the Free Software Foundation; either version 3
10* of the License, or (at your option) any later version.
11*
12* This program is distributed in the hope that it will be useful,
13* but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15* GNU General Public License for more details.
16* You should have received a copy of the GNU General Public License
17* along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20
21#ifndef __APPLET_INIT__
22#define __APPLET_INIT__
23
24
25#include <cairo-dock.h>
26
27
28CD_APPLET_H
29
30
31#endif
032
=== added file 'Suspend-Workaround/src/applet-struct.h'
--- Suspend-Workaround/src/applet-struct.h 1970-01-01 00:00:00 +0000
+++ Suspend-Workaround/src/applet-struct.h 2014-09-05 11:39:20 +0000
@@ -0,0 +1,47 @@
1/**
2* This file is a part of the Cairo-Dock project
3*
4* Copyright : (C) see the 'copyright' file.
5* E-mail : see the 'copyright' file.
6*
7* This program is free software; you can redistribute it and/or
8* modify it under the terms of the GNU General Public License
9* as published by the Free Software Foundation; either version 3
10* of the License, or (at your option) any later version.
11*
12* This program is distributed in the hope that it will be useful,
13* but WITHOUT ANY WARRANTY; without even the implied warranty of
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15* GNU General Public License for more details.
16* You should have received a copy of the GNU General Public License
17* along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20
21#ifndef __CD_APPLET_STRUCT__
22#define __CD_APPLET_STRUCT__
23
24#include <cairo-dock.h>
25
26#include <dbus/dbus-glib.h>
27
28//\___________ structure containing the applet's configuration parameters.
29struct _AppletConfig {
30} ;
31
32struct _dbus_power_object_info {
33 char* name;
34 char* path;
35 char* interface;
36 char* resume_signal;
37 int signal_type;
38};
39
40//\___________ structure containing the applet's data, like surfaces, dialogs, results of calculus, etc.
41struct _AppletData {
42 DBusGProxy *pProxy;
43 struct _dbus_power_object_info *power_object_info;
44} ;
45
46
47#endif
048
=== modified file 'copyright' (properties changed: +x to -x)
--- copyright 2013-02-26 23:16:49 +0000
+++ copyright 2014-09-05 11:39:20 +0000
@@ -189,3 +189,10 @@
189 * You should have received a copy of the GNU General Public License189 * You should have received a copy of the GNU General Public License
190 * along with this program; if not, write to the Free Software190 * along with this program; if not, write to the Free Software
191 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA191 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
192
193Files: Suspend-Workaround/*
194Copyright: 2014 Jesús González <jgonzalez@gdr-sistemas.com>
195License: GPL 3+ (See /usr/share/common-licenses/GPL-3 for complete license)
196
197Icon Suspend-Workaround/data/icon.png based on the works of New Mooon
198<newmooon@gmail.com> and icons from the gnome icons theme by GNOME icon artists.

Subscribers

People subscribed via source and target branches