Thu, 30 Nov 2023 21:33:32 -0600
Remove all of the existing status widgets
None of these work with the new presence system and were going to be removed
sooner or later. I'm opting for sooner as many of them have deprecation
warnings that make the build output difficult to read.
Testing Done:
Ran `ninja turtles` and ran pidgin3 without issues.
Reviewed at https://reviews.imfreedom.org/r/2809/
| 11907 | 1 | /* |
|
41136
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
2 | * Pidgin - Universal Chat Client |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
3 | * Copyright (C) Pidgin Developers <devel@pidgin.im> |
| 11907 | 4 | * |
| 5 | * This program is free software; you can redistribute it and/or modify | |
| 6 | * it under the terms of the GNU General Public License as published by | |
| 7 | * the Free Software Foundation; either version 2 of the License, or | |
| 8 | * (at your option) any later version. | |
| 9 | * | |
| 10 | * This program is distributed in the hope that it will be useful, | |
| 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 13 | * GNU General Public License for more details. | |
| 14 | * | |
| 15 | * You should have received a copy of the GNU General Public License | |
|
41136
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
16 | * along with this program; if not, see <https://www.gnu.org/licenses/>. |
| 11907 | 17 | */ |
|
40439
e9838d634d5e
Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents:
40360
diff
changeset
|
18 | |
|
42410
563e7a17c220
Fix possible clash of config headers
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
42068
diff
changeset
|
19 | #include <purpleconfig.h> |
|
40439
e9838d634d5e
Make sure that internal.h can only be included by libpurple and split out some pieces to purpleprivate.h
Gary Kramlich <grim@reaperworld.com>
parents:
40360
diff
changeset
|
20 | |
|
12410
98d8abd3db98
[gaim-migrate @ 14717]
Richard Laager <rlaager@pidgin.im>
parents:
12278
diff
changeset
|
21 | #include "gtkidle.h" |
| 11907 | 22 | |
|
13324
8ff1c408ef3e
[gaim-migrate @ 15693]
Richard Laager <rlaager@pidgin.im>
parents:
12410
diff
changeset
|
23 | #ifdef HAVE_IOKIT |
|
40039
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
24 | /* HAVE_UNISTD_H must have a value, see |
|
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
25 | * https://forums.developer.apple.com/thread/86887 |
|
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
26 | */ |
|
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
27 | # ifdef HAVE_UNISTD_H |
|
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
28 | # undef HAVE_UNISTD_H |
|
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
29 | # define HAVE_UNISTD_H 1 |
|
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
30 | # else |
|
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
31 | # define HAVE_UNISTD_H 0 |
|
40038
e2967758a0c4
Move to a newer method for getting the idle time on macos
Gary Kramlich <grim@reaperworld.com>
parents:
38606
diff
changeset
|
32 | # endif |
|
40039
dac8511b1992
usr/include/dispatch/dispatch.h on macos has a bad macro test that requires HAVE_UNISTD_H to have a value, this works around it.
Gary Kramlich <grim@reaperworld.com>
parents:
40038
diff
changeset
|
33 | |
|
13324
8ff1c408ef3e
[gaim-migrate @ 15693]
Richard Laager <rlaager@pidgin.im>
parents:
12410
diff
changeset
|
34 | # include <CoreFoundation/CoreFoundation.h> |
|
8ff1c408ef3e
[gaim-migrate @ 15693]
Richard Laager <rlaager@pidgin.im>
parents:
12410
diff
changeset
|
35 | # include <IOKit/IOKitLib.h> |
|
38580
775bba9b53df
gtkidle: Add parentheses around defined preprocessor macro argument
Mike Ruprecht <cmaiku@gmail.com>
parents:
38578
diff
changeset
|
36 | #elif defined (_WIN32) |
|
38606
357f1b3c33d9
gtkidle: Include gtkwin32dep.h in its subdirectory
Mike Ruprecht <cmaiku@gmail.com>
parents:
38581
diff
changeset
|
37 | # include "win32/gtkwin32dep.h" |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
38 | #endif |
| 11907 | 39 | |
|
40360
e21f3bbcc2a5
Update all of the pidgin code to include purple.h
Gary Kramlich <grim@reaperworld.com>
parents:
40041
diff
changeset
|
40 | #include <purple.h> |
| 11907 | 41 | |
|
41136
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
42 | struct _PidginIdle { |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
43 | GObject parent; |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
44 | }; |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
45 | |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
46 | /****************************************************************************** |
|
41152
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
47 | * PurpleIdleUi Implementation |
|
41136
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
48 | *****************************************************************************/ |
|
41152
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
49 | #ifdef _WIN32 |
|
12272
4eee92ead973
[gaim-migrate @ 14574]
Mark Doliner <markdoliner@pidgin.im>
parents:
12252
diff
changeset
|
50 | static time_t |
|
42068
382ecbbf0080
Mark a number of unused parameters as such
Gary Kramlich <grim@reaperworld.com>
parents:
41947
diff
changeset
|
51 | pidgin_idle_get_idle_time(G_GNUC_UNUSED PurpleIdleUi *ui) { |
|
41152
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
52 | return (GetTickCount() - winpidgin_get_lastactive()) / 1000; |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
53 | } |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
54 | #endif /* _WIN32 */ |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
55 | |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
56 | #ifdef HAVE_IOKIT |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
57 | static time_t |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
58 | pidgin_idle_get_idle_time(PurpleIdleUi *ui) { |
|
13324
8ff1c408ef3e
[gaim-migrate @ 15693]
Richard Laager <rlaager@pidgin.im>
parents:
12410
diff
changeset
|
59 | /* Query the IOKit API */ |
|
40041
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
60 | double idleSeconds = -1; |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
61 | io_iterator_t iter = 0; |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
62 | if (IOServiceGetMatchingServices(kIOMasterPortDefault, IOServiceMatching("IOHIDSystem"), &iter) == KERN_SUCCESS) { |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
63 | io_registry_entry_t entry = IOIteratorNext(iter); |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
64 | if (entry) { |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
65 | CFMutableDictionaryRef dict = NULL; |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
66 | kern_return_t status; |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
67 | status = IORegistryEntryCreateCFProperties(entry, &dict, kCFAllocatorDefault, 0); |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
68 | if (status == KERN_SUCCESS) { |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
69 | CFNumberRef obj = CFDictionaryGetValue(dict, CFSTR("HIDIdleTime")); |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
70 | if (obj) { |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
71 | int64_t nanoseconds = 0; |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
72 | if (CFNumberGetValue(obj, kCFNumberSInt64Type, &nanoseconds)) { |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
73 | idleSeconds = (double) nanoseconds / NSEC_PER_SEC; |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
74 | } |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
75 | } |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
76 | CFRelease(dict); |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
77 | } |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
78 | IOObjectRelease(entry); |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
79 | } |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
80 | IOObjectRelease(iter); |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
81 | } |
|
da9efbd154f3
replace spaces with tabs for the new idle tracker for macos
Gary Kramlich <grim@reaperworld.com>
parents:
40039
diff
changeset
|
82 | return idleSeconds; |
|
41152
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
83 | } |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
84 | #endif /* HAVE_IOKIT */ |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
85 | |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
86 | #if !defined(_WIN32) && !defined(HAVE_IOKIT) |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
87 | typedef struct { |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
88 | gchar *bus_name; |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
89 | gchar *object_path; |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
90 | gchar *iface_name; |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
91 | } PidginDBusScreenSaverInfo; |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
92 | |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
93 | static const PidginDBusScreenSaverInfo screensavers[] = { |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
94 | { |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
95 | "org.freedesktop.ScreenSaver", |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
96 | "/org/freedesktop/ScreenSaver", |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
97 | "org.freedesktop.ScreenSaver" |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
98 | }, { |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
99 | "org.gnome.ScreenSaver", |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
100 | "/org/gnome/ScreenSaver", |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
101 | "org.gnome.ScreenSaver" |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
102 | }, { |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
103 | "org.kde.ScreenSaver", |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
104 | "/org/kde/ScreenSaver", |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
105 | "org.kde.ScreenSaver" |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
106 | }, |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
107 | }; |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
108 | |
|
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
109 | static time_t |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41152
diff
changeset
|
110 | pidgin_idle_get_idle_time(G_GNUC_UNUSED PurpleIdleUi *ui) { |
|
38581
4a451e6f3c66
gtkidle: Use clearer control structure for checking DBus screensavers
Mike Ruprecht <cmaiku@gmail.com>
parents:
38580
diff
changeset
|
111 | static guint idx = 0; |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
112 | GApplication *app; |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
113 | GDBusConnection *conn; |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
114 | GVariant *reply = NULL; |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
115 | guint32 active_time = 0; |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
116 | GError *error = NULL; |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
117 | |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
118 | app = g_application_get_default(); |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
119 | |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
120 | if (app == NULL) { |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
121 | purple_debug_error("gtkidle", |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
122 | "Unable to retrieve GApplication"); |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
123 | return 0; |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
124 | } |
|
13324
8ff1c408ef3e
[gaim-migrate @ 15693]
Richard Laager <rlaager@pidgin.im>
parents:
12410
diff
changeset
|
125 | |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
126 | conn = g_application_get_dbus_connection(app); |
| 17129 | 127 | |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
128 | if (conn == NULL) { |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
129 | purple_debug_misc("gtkidle", |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
130 | "GApplication lacking DBus connection. " |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
131 | "Skip checking ScreenSaver interface"); |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
132 | return 0; |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
133 | } |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
134 | |
|
38581
4a451e6f3c66
gtkidle: Use clearer control structure for checking DBus screensavers
Mike Ruprecht <cmaiku@gmail.com>
parents:
38580
diff
changeset
|
135 | for (; idx < G_N_ELEMENTS(screensavers); ++idx) { |
|
4a451e6f3c66
gtkidle: Use clearer control structure for checking DBus screensavers
Mike Ruprecht <cmaiku@gmail.com>
parents:
38580
diff
changeset
|
136 | const PidginDBusScreenSaverInfo *info = &screensavers[idx]; |
|
4a451e6f3c66
gtkidle: Use clearer control structure for checking DBus screensavers
Mike Ruprecht <cmaiku@gmail.com>
parents:
38580
diff
changeset
|
137 | |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
138 | reply = g_dbus_connection_call_sync(conn, |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
139 | info->bus_name, info->object_path, |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
140 | info->iface_name, "GetActiveTime", |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
141 | NULL, G_VARIANT_TYPE("(u)"), |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
142 | G_DBUS_CALL_FLAGS_NO_AUTO_START, 1000, |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
143 | NULL, &error); |
| 17129 | 144 | |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
145 | if (reply != NULL) { |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
146 | break; |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
147 | } |
| 17129 | 148 | |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
149 | if (g_error_matches(error, G_DBUS_ERROR, |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
150 | G_DBUS_ERROR_NOT_SUPPORTED)) { |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
151 | purple_debug_info("gtkidle", |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
152 | "Querying idle time on '%s' " |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
153 | "unsupported. Trying the next one", |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
154 | info->bus_name); |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
155 | } else if (g_error_matches(error, G_DBUS_ERROR, |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
156 | G_DBUS_ERROR_NAME_HAS_NO_OWNER)) { |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
157 | purple_debug_info("gtkidle", |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
158 | "Querying idle time on '%s' " |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
159 | "not found. Trying the next one", |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
160 | info->bus_name); |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
161 | } else { |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
162 | purple_debug_error("gtkidle", |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
163 | "Querying idle time on '%s' " |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
164 | "error: %s", info->bus_name, |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
165 | error->message); |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
166 | } |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
167 | |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
168 | g_clear_error(&error); |
| 17129 | 169 | } |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
170 | |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
171 | if (reply == NULL) { |
|
41134
138d55c90767
Adjust some debug levels which were throwing warning messages when they shouldn't have
Gary Kramlich <grim@reaperworld.com>
parents:
40439
diff
changeset
|
172 | purple_debug_info("gtkidle", |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
173 | "Failed to query ScreenSaver active time: " |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
174 | "No working ScreenSaver interfaces"); |
| 11907 | 175 | return 0; |
|
38578
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
176 | } |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
177 | |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
178 | g_variant_get(reply, "(u)", &active_time); |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
179 | g_variant_unref(reply); |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
180 | |
|
c81f0a8301fe
gtkidle: Port XScreensaver to DBus ScreenSaver interfaces
Mike Ruprecht <cmaiku@gmail.com>
parents:
35455
diff
changeset
|
181 | return active_time; |
|
12278
21bcbadf956d
[gaim-migrate @ 14582]
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents:
12272
diff
changeset
|
182 | } |
|
41152
1dda9fb5d8ae
Separate the preproc mess of gtkidle out from a single function to multiple functions
Gary Kramlich <grim@reaperworld.com>
parents:
41136
diff
changeset
|
183 | #endif /* !defined(_WIN32) && !defined(HAVE_IOKIT) */ |
| 11907 | 184 | |
|
41136
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
185 | static void |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
186 | pidgin_idle_purple_ui_init(PurpleIdleUiInterface *iface) { |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
187 | iface->get_idle_time = pidgin_idle_get_idle_time; |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
188 | } |
| 11907 | 189 | |
|
41136
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
190 | /****************************************************************************** |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
191 | * GObject Implementation |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
192 | *****************************************************************************/ |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
193 | G_DEFINE_TYPE_EXTENDED( |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
194 | PidginIdle, |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
195 | pidgin_idle, |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
196 | G_TYPE_OBJECT, |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
197 | 0, |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
198 | G_IMPLEMENT_INTERFACE( |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
199 | PURPLE_TYPE_IDLE_UI, |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
200 | pidgin_idle_purple_ui_init |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
201 | ) |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
202 | ); |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
203 | |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
204 | static void |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41152
diff
changeset
|
205 | pidgin_idle_init(G_GNUC_UNUSED PidginIdle *idle) { |
| 11907 | 206 | } |
|
41136
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
207 | |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
208 | static void |
|
41947
7b3312d0760c
Bump C standard to C99 for Pidgin files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
41152
diff
changeset
|
209 | pidgin_idle_class_init(G_GNUC_UNUSED PidginIdleClass *klass) { |
|
41136
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
210 | } |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
211 | |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
212 | /****************************************************************************** |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
213 | * Public API |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
214 | *****************************************************************************/ |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
215 | PurpleIdleUi * |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
216 | pidgin_idle_new(void) { |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
217 | return g_object_new(PIDGIN_TYPE_IDLE, NULL); |
|
5397330041d6
Replace PurpleIdleUiOps with the PurpleIdleUi Interface
Gary Kramlich <grim@reaperworld.com>
parents:
41134
diff
changeset
|
218 | } |