Compare commits

..
29 changed files with 3743 additions and 3927 deletions
+16 -9
View File
@@ -1,11 +1,15 @@
# You can override the included template(s) by including variable overrides
# SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings
# Secret Detection customization: https://docs.gitlab.com/ee/user/application_security/secret_detection/#customizing-settings
# Dependency Scanning customization: https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#customizing-the-dependency-scanning-settings
# Note that environment variables can be set in several places
# See https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence
stages: stages:
- build - build
- test - test
- release - release
variables: variables:
DEBIAN_FRONTEND: 'noninteractive' DEBIAN_FRONTEND: noninteractive
job-build: job-build:
stage: build stage: build
image: ubuntu:rolling image: ubuntu:rolling
@@ -19,16 +23,19 @@ job-build:
- cd build - cd build
- cmake .. - cmake ..
- make -j - make -j
job-release: job-release:
stage: release stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest image: registry.gitlab.com/gitlab-org/release-cli:latest
rules: rules:
- if: $CI_COMMIT_TAG =~ /^v.*/ - if: "$CI_COMMIT_TAG =~ /^v.*/"
script: script:
- echo 'running release_job' - echo 'running release_job'
release: release:
name: 'Release $CI_COMMIT_TAG' name: Release $CI_COMMIT_TAG
description: 'Release $CI_COMMIT_TAG / $CI_COMMIT_SHA' description: Release $CI_COMMIT_TAG / $CI_COMMIT_SHA
tag_name: '$CI_COMMIT_TAG' tag_name: "$CI_COMMIT_TAG"
ref: '$CI_COMMIT_SHA' ref: "$CI_COMMIT_SHA"
sast:
stage: test
include:
- template: Security/SAST.gitlab-ci.yml
-1
View File
@@ -35,7 +35,6 @@ Contributors:
heisenbug (https://gitlab.com/heisenbugh) : taskbar button tinting with icon color heisenbug (https://gitlab.com/heisenbugh) : taskbar button tinting with icon color
Fabian Carlström : taskbar sort order by app name Fabian Carlström : taskbar sort order by app name
Chris Billington (https://gitlab.com/chrisjbillington) : panel struts pivoting Chris Billington (https://gitlab.com/chrisjbillington) : panel struts pivoting
Arash Rohani <rohani.arash@pm.me> : helped with execp refresh
Translations: Translations:
Bosnian: Bosnian:
-4
View File
@@ -286,11 +286,7 @@ add_dependencies( tint2 version )
set_target_properties( tint2 PROPERTIES COMPILE_FLAGS "-Wall -Wpointer-arith -fno-strict-aliasing -pthread -std=${CSTD} ${ASAN_C_FLAGS} ${TRACING_C_FLAGS}" ) set_target_properties( tint2 PROPERTIES COMPILE_FLAGS "-Wall -Wpointer-arith -fno-strict-aliasing -pthread -std=${CSTD} ${ASAN_C_FLAGS} ${TRACING_C_FLAGS}" )
set_target_properties( tint2 PROPERTIES LINK_FLAGS "-pthread -fno-strict-aliasing ${ASAN_L_FLAGS} ${BACKTRACE_L_FLAGS} ${TRACING_L_FLAGS}" ) set_target_properties( tint2 PROPERTIES LINK_FLAGS "-pthread -fno-strict-aliasing ${ASAN_L_FLAGS} ${BACKTRACE_L_FLAGS} ${TRACING_L_FLAGS}" )
add_executable(tint2-send src/tint2-send/tint2-send.c)
target_link_libraries(tint2-send ${X11_LIBRARIES})
install( TARGETS tint2 DESTINATION bin ) install( TARGETS tint2 DESTINATION bin )
install( TARGETS tint2-send DESTINATION bin )
install( FILES tint2.svg DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps ) install( FILES tint2.svg DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps )
install( FILES tint2.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications ) install( FILES tint2.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications )
install( FILES themes/tint2rc DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/xdg/tint2 ) install( FILES themes/tint2rc DESTINATION ${CMAKE_INSTALL_FULL_SYSCONFDIR}/xdg/tint2 )
+1 -6
View File
@@ -1,9 +1,4 @@
2021-12-11 master 2021-10-14 master
- Enhancements:
- Added command to refresh executors (issue #747)
2021-12-04 17.0.2
- Fixes:
- On dual monitor, when minimizing Chrome window it minimizes on the wrong monitor panel (issue #818)
2021-05-29 17.0.1 2021-05-29 17.0.1
- Fixes: - Fixes:
- Crash on panel cleanup in single-monitor execp (issue #801) - Crash on panel cleanup in single-monitor execp (issue #801)
+3 -7
View File
@@ -1,9 +1,5 @@
# Latest stable release: 17.0.2 # Latest stable release: 17.0.1
Changes: https://gitlab.com/o9000/tint2/blob/17.0.1/ChangeLog
The final release of tint2 is 17.0.2.
The code is frozen and no more feature requests are accepted.
Changes: https://gitlab.com/o9000/tint2/blob/17.0.2/ChangeLog
Documentation: [doc/tint2.md](doc/tint2.md) Documentation: [doc/tint2.md](doc/tint2.md)
@@ -12,7 +8,7 @@ Compile it with (after you install the [dependencies](https://gitlab.com/o9000/t
``` ```
git clone https://gitlab.com/o9000/tint2.git git clone https://gitlab.com/o9000/tint2.git
cd tint2 cd tint2
git checkout 17.0.2 git checkout 17.0.1
mkdir build mkdir build
cd build cd build
cmake .. cmake ..
-1
View File
@@ -595,7 +595,6 @@ panel_size = 94% 30
<h3 id="executor">Executor<a name="executor" href="#executor" class="md2man-permalink" title="permalink"></a></h3> <h3 id="executor">Executor<a name="executor" href="#executor" class="md2man-permalink" title="permalink"></a></h3>
<ul> <ul>
<li><p><code>execp = new</code> : Begins the configuration of a new executor plugin. Multiple such plugins are supported; just use multiple <code>E</code>s in <code>panel_items</code>. <em>(since 0.12.4)</em></p></li> <li><p><code>execp = new</code> : Begins the configuration of a new executor plugin. Multiple such plugins are supported; just use multiple <code>E</code>s in <code>panel_items</code>. <em>(since 0.12.4)</em></p></li>
<li><p><code>execp_name = text</code> : A name that can be used with <code>tint2-send refresh-execp</code> to re-execute the command.</p></li>
<li><p><code>execp_command = text</code> : Command to execute. <em>(since 0.12.4)</em></p></li> <li><p><code>execp_command = text</code> : Command to execute. <em>(since 0.12.4)</em></p></li>
<li><p><code>execp_interval = integer</code> : The command is executed again after <code>execp_interval</code> seconds from the moment it exits. If zero, the command is executed only once. <em>(since 0.12.4)</em></p></li> <li><p><code>execp_interval = integer</code> : The command is executed again after <code>execp_interval</code> seconds from the moment it exits. If zero, the command is executed only once. <em>(since 0.12.4)</em></p></li>
<li><p><code>execp_continuous = integer</code> : If non-zero, the last <code>execp_continuous</code> lines from the output of the command are displayed, every <code>execp_continuous</code> lines; this is useful for showing the output of commands that run indefinitely, such as <code>ping 127.0.0.1</code>. If zero, the output of the command is displayed after it finishes executing. <em>(since 0.12.4)</em></p></li> <li><p><code>execp_continuous = integer</code> : If non-zero, the last <code>execp_continuous</code> lines from the output of the command are displayed, every <code>execp_continuous</code> lines; this is useful for showing the output of commands that run indefinitely, such as <code>ping 127.0.0.1</code>. If zero, the output of the command is displayed after it finishes executing. <em>(since 0.12.4)</em></p></li>
+2 -2
View File
@@ -199,9 +199,9 @@ pre {
</style> </style>
</head> </head>
<body> <body>
<h1 id="latest-stable-release-17-0-2"><span class="md2man-title">Latest</span> <span class="md2man-section">stable</span> <span class="md2man-date">release:</span> <span class="md2man-source">17.0.2</span><a name="latest-stable-release-17-0-2" href="#latest-stable-release-17-0-2" class="md2man-permalink" title="permalink"></a></h1><p>Changes: <a href="https://gitlab.com/o9000/tint2/blob/17.0.2/ChangeLog">https://gitlab.com/o9000/tint2/blob/17.0.2/ChangeLog</a></p><p>Documentation: <a href="manual.html">manual.html</a></p><p>Compile it with (after you install the <a href="https://gitlab.com/o9000/tint2/wikis/Install#dependencies">dependencies</a>):</p><div class="highlight"><pre class="highlight plaintext"><code>git clone https://gitlab.com/o9000/tint2.git <h1 id="latest-stable-release-17-0-1"><span class="md2man-title">Latest</span> <span class="md2man-section">stable</span> <span class="md2man-date">release:</span> <span class="md2man-source">17.0.1</span><a name="latest-stable-release-17-0-1" href="#latest-stable-release-17-0-1" class="md2man-permalink" title="permalink"></a></h1><p>Changes: <a href="https://gitlab.com/o9000/tint2/blob/17.0.1/ChangeLog">https://gitlab.com/o9000/tint2/blob/17.0.1/ChangeLog</a></p><p>Documentation: <a href="manual.html">manual.html</a></p><p>Compile it with (after you install the <a href="https://gitlab.com/o9000/tint2/wikis/Install#dependencies">dependencies</a>):</p><div class="highlight"><pre class="highlight plaintext"><code>git clone https://gitlab.com/o9000/tint2.git
cd tint2 cd tint2
git checkout 17.0.2 git checkout 17.0.1
mkdir build mkdir build
cd build cd build
cmake .. cmake ..
+1 -3
View File
@@ -1,4 +1,4 @@
.TH TINT2 1 "2021\-12\-04" 17.0.2 .TH TINT2 1 "2021\-05\-29" 17.0.1
.SH NAME .SH NAME
.PP .PP
tint2 \- lightweight panel/taskbar tint2 \- lightweight panel/taskbar
@@ -720,8 +720,6 @@ To hide the clock, comment \fB\fCtime1_format\fR and \fB\fCtime2_format\fR\&.
.IP \(bu 2 .IP \(bu 2
\fB\fCexecp = new\fR : Begins the configuration of a new executor plugin. Multiple such plugins are supported; just use multiple \fB\fCE\fRs in \fB\fCpanel_items\fR\&. \fI(since 0.12.4)\fP \fB\fCexecp = new\fR : Begins the configuration of a new executor plugin. Multiple such plugins are supported; just use multiple \fB\fCE\fRs in \fB\fCpanel_items\fR\&. \fI(since 0.12.4)\fP
.IP \(bu 2 .IP \(bu 2
\fB\fCexecp_name = text\fR : A name that can be used with \fB\fCtint2\-send refresh\-execp\fR to re\-execute the command.
.IP \(bu 2
\fB\fCexecp_command = text\fR : Command to execute. \fI(since 0.12.4)\fP \fB\fCexecp_command = text\fR : Command to execute. \fI(since 0.12.4)\fP
.IP \(bu 2 .IP \(bu 2
\fB\fCexecp_interval = integer\fR : The command is executed again after \fB\fCexecp_interval\fR seconds from the moment it exits. If zero, the command is executed only once. \fI(since 0.12.4)\fP \fB\fCexecp_interval = integer\fR : The command is executed again after \fB\fCexecp_interval\fR seconds from the moment it exits. If zero, the command is executed only once. \fI(since 0.12.4)\fP
-1
View File
@@ -314,7 +314,6 @@ panel_size = 94% 30
<h3 id="executor">Executor<a name="executor" href="#executor" class="md2man-permalink" title="permalink"></a></h3> <h3 id="executor">Executor<a name="executor" href="#executor" class="md2man-permalink" title="permalink"></a></h3>
<ul> <ul>
<li><p><code>execp = new</code> : Begins the configuration of a new executor plugin. Multiple such plugins are supported; just use multiple <code>E</code>s in <code>panel_items</code>. <em>(since 0.12.4)</em></p></li> <li><p><code>execp = new</code> : Begins the configuration of a new executor plugin. Multiple such plugins are supported; just use multiple <code>E</code>s in <code>panel_items</code>. <em>(since 0.12.4)</em></p></li>
<li><p><code>execp_name = text</code> : A name that can be used with <code>tint2-send refresh-execp</code> to re-execute the command.</p></li>
<li><p><code>execp_command = text</code> : Command to execute. <em>(since 0.12.4)</em></p></li> <li><p><code>execp_command = text</code> : Command to execute. <em>(since 0.12.4)</em></p></li>
<li><p><code>execp_interval = integer</code> : The command is executed again after <code>execp_interval</code> seconds from the moment it exits. If zero, the command is executed only once. <em>(since 0.12.4)</em></p></li> <li><p><code>execp_interval = integer</code> : The command is executed again after <code>execp_interval</code> seconds from the moment it exits. If zero, the command is executed only once. <em>(since 0.12.4)</em></p></li>
<li><p><code>execp_continuous = integer</code> : If non-zero, the last <code>execp_continuous</code> lines from the output of the command are displayed, every <code>execp_continuous</code> lines; this is useful for showing the output of commands that run indefinitely, such as <code>ping 127.0.0.1</code>. If zero, the output of the command is displayed after it finishes executing. <em>(since 0.12.4)</em></p></li> <li><p><code>execp_continuous = integer</code> : If non-zero, the last <code>execp_continuous</code> lines from the output of the command are displayed, every <code>execp_continuous</code> lines; this is useful for showing the output of commands that run indefinitely, such as <code>ping 127.0.0.1</code>. If zero, the output of the command is displayed after it finishes executing. <em>(since 0.12.4)</em></p></li>
+1 -3
View File
@@ -1,4 +1,4 @@
# TINT2 1 "2021-12-04" 17.0.2 # TINT2 1 "2021-05-29" 17.0.1
## NAME ## NAME
tint2 - lightweight panel/taskbar tint2 - lightweight panel/taskbar
@@ -593,8 +593,6 @@ The action semantics:
* `execp = new` : Begins the configuration of a new executor plugin. Multiple such plugins are supported; just use multiple `E`s in `panel_items`. *(since 0.12.4)* * `execp = new` : Begins the configuration of a new executor plugin. Multiple such plugins are supported; just use multiple `E`s in `panel_items`. *(since 0.12.4)*
* `execp_name = text` : A name that can be used with `tint2-send refresh-execp` to re-execute the command.
* `execp_command = text` : Command to execute. *(since 0.12.4)* * `execp_command = text` : Command to execute. *(since 0.12.4)*
* `execp_interval = integer` : The command is executed again after `execp_interval` seconds from the moment it exits. If zero, the command is executed only once. *(since 0.12.4)* * `execp_interval = integer` : The command is executed again after `execp_interval` seconds from the moment it exits. If zero, the command is executed only once. *(since 0.12.4)*
-8
View File
@@ -683,14 +683,6 @@ void add_entry(char *key, char *value)
/* Execp */ /* Execp */
else if (strcmp(key, "execp") == 0) { else if (strcmp(key, "execp") == 0) {
panel_config.execp_list = g_list_append(panel_config.execp_list, create_execp()); panel_config.execp_list = g_list_append(panel_config.execp_list, create_execp());
} else if (strcmp(key, "execp_name") == 0) {
Execp *execp = get_or_create_last_execp();
execp->backend->name[0] = 0;
if (strlen(value) > sizeof(execp->backend->name) - 1)
fprintf(stderr, RED "tint2: execp_name cannot be more than %ld bytes: '%s'" RESET "\n",
sizeof(execp->backend->name) - 1, value);
else if (strlen(value) > 0)
snprintf(execp->backend->name, sizeof(execp->backend->name), value);
} else if (strcmp(key, "execp_command") == 0) { } else if (strcmp(key, "execp_command") == 0) {
Execp *execp = get_or_create_last_execp(); Execp *execp = get_or_create_last_execp();
free_and_null(execp->backend->command); free_and_null(execp->backend->command);
-3
View File
@@ -20,7 +20,6 @@ extern bool debug_executors;
typedef struct ExecpBackend { typedef struct ExecpBackend {
// Config: // Config:
char name[21];
// Command to execute at a specified interval // Command to execute at a specified interval
char *command; char *command;
// Interval in seconds // Interval in seconds
@@ -155,6 +154,4 @@ void execp_default_font_changed();
void handle_execp_events(); void handle_execp_events();
void execp_force_update(Execp *execp);
#endif // EXECPLUGIN_H #endif // EXECPLUGIN_H
+1 -11
View File
@@ -32,6 +32,7 @@
#include <X11/extensions/Xdamage.h> #include <X11/extensions/Xdamage.h>
#include <Imlib2.h> #include <Imlib2.h>
#include <signal.h> #include <signal.h>
#include <unistd.h>
#include <sys/types.h> #include <sys/types.h>
#include <pwd.h> #include <pwd.h>
#include <time.h> #include <time.h>
@@ -544,17 +545,6 @@ void handle_x_event(XEvent *e)
handle_dnd_position(&e->xclient); handle_dnd_position(&e->xclient);
} else if (e->xclient.message_type == server.atom.XdndDrop) { } else if (e->xclient.message_type == server.atom.XdndDrop) {
handle_dnd_drop(&e->xclient); handle_dnd_drop(&e->xclient);
} else if (e->xclient.message_type == server.atom.TINT2_REFRESH_EXECP &&
e->xclient.format == 8) {
char name[sizeof(e->xclient.data.b) + 1] = {};
memcpy(name, e->xclient.data.b, sizeof(e->xclient.data.b));
for (GList *l = panel_config.execp_list; l; l = l->next) {
Execp *execp = (Execp *)l->data;
if (strncmp(name, execp->backend->name, sizeof(execp->backend->name) - 1) == 0) {
fprintf(stderr, "tint2: Refreshing executor: %s\n", name);
execp_force_update(execp);
}
}
} }
break; break;
} }
+2 -3
View File
@@ -292,10 +292,9 @@ void on_change_systray(void *obj)
} }
TrayWindow *traywin; TrayWindow *traywin;
GSList *l, *next; GSList *l;
int i; int i;
for (i = 1, l = systray.list_icons; l; i++, l = next) { for (i = 1, l = systray.list_icons; l; i++, l = l->next) {
next = l->next;
traywin = (TrayWindow *)l->data; traywin = (TrayWindow *)l->data;
traywin->y = posy; traywin->y = posy;
+12
View File
@@ -0,0 +1,12 @@
ifeq ($(PREFIX),)
PREFIX := /usr/local
endif
tint2-send: tint2-send.c
$(CC) tint2-send.c -lX11 -o tint2-send
install: tint2-send
install -m 755 tint2-send $(DESTDIR)/$(PREFIX)/bin/
clean:
rm -f tint2-send
+10 -34
View File
@@ -45,8 +45,8 @@ int is_tint2(Window window)
XWindowAttributes attr = {}; XWindowAttributes attr = {};
if (!XGetWindowAttributes(display, window, &attr)) if (!XGetWindowAttributes(display, window, &attr))
return 0; return 0;
// if (attr.map_state != IsViewable) if (attr.map_state != IsViewable)
// return 0; return 0;
char *wm_class = get_property(window, XA_STRING, "WM_NAME"); char *wm_class = get_property(window, XA_STRING, "WM_NAME");
if (!wm_class) { if (!wm_class) {
@@ -60,10 +60,11 @@ int is_tint2(Window window)
return class_match; return class_match;
} }
void handle_tint2_window(Window window, char *action, char **args) void handle_tint2_window(Window window, void *arg)
{ {
if (!is_tint2(window)) if (!is_tint2(window))
return; return;
char *action = (char *)arg;
if (strcmp(action, "show") == 0) { if (strcmp(action, "show") == 0) {
fprintf(stderr, "Showing tint2 window: %lx\n", window); fprintf(stderr, "Showing tint2 window: %lx\n", window);
XEvent event = {}; XEvent event = {};
@@ -84,40 +85,16 @@ void handle_tint2_window(Window window, char *action, char **args)
event.xcrossing.same_screen = True; event.xcrossing.same_screen = True;
XSendEvent(display, window, False, 0, &event); XSendEvent(display, window, False, 0, &event);
XFlush(display); XFlush(display);
} else if (strcmp(action, "refresh-execp") == 0) {
XEvent event = {};
char *name = args[0];
if (!name) {
fprintf(stderr, "Error: missing execp name\n");
return;
}
if (!name[0]) {
fprintf(stderr, "Error: empty execp name\n");
return;
}
if (strlen(name) > sizeof(event.xclient.data.b)) {
fprintf(stderr, "Error: execp name bigger than %ld bytes\n", sizeof(event.xclient.data.b));
return;
}
fprintf(stderr, "Refreshing execp '%s' for window: %lx\n", name, window);
event.xclient.type = ClientMessage;
event.xclient.window = window;
event.xclient.send_event = True;
event.xclient.message_type = XInternAtom(display, "_TINT2_REFRESH_EXECP", False);
event.xclient.format = 8;
strncpy(event.xclient.data.b, name, sizeof(event.xclient.data.b));
XSendEvent(display, window, False, 0, &event);
XFlush(display);
} else { } else {
fprintf(stderr, "Error: unknown action %s\n", action); fprintf(stderr, "Error: unknown action %s\n", action);
} }
} }
typedef void window_callback_t(Window window, char *action, char **args); typedef void window_callback_t(Window window, void *arg);
void walk_windows(Window node, window_callback_t *callback, char *action, char **args) void walk_windows(Window node, window_callback_t *callback, void *arg)
{ {
callback(node, action, args); callback(node, arg);
Window root = 0; Window root = 0;
Window parent = 0; Window parent = 0;
Window *children = 0; Window *children = 0;
@@ -127,7 +104,7 @@ void walk_windows(Window node, window_callback_t *callback, char *action, char *
return; return;
} }
for (unsigned int i = 0; i < nchildren; i++) { for (unsigned int i = 0; i < nchildren; i++) {
walk_windows(children[i], callback, action, args); walk_windows(children[i], callback, arg);
} }
} }
@@ -141,12 +118,11 @@ int main(int argc, char **argv)
argc--, argv++; argc--, argv++;
if (!argc) { if (!argc) {
fprintf(stderr, "Usage: tint2-send [show|hide|refresh-execp]\n"); fprintf(stderr, "Usage: tint2-show [show|hide]\n");
exit(1); exit(1);
} }
char *action = argv[0]; char *action = argv[0];
char **args = argv + 1; walk_windows(DefaultRootWindow(display), handle_tint2_window, action);
walk_windows(DefaultRootWindow(display), handle_tint2_window, action, args);
return 0; return 0;
} }
+460 -474
View File
File diff suppressed because it is too large Load Diff
+460 -474
View File
File diff suppressed because it is too large Load Diff
+460 -474
View File
File diff suppressed because it is too large Load Diff
+460 -474
View File
File diff suppressed because it is too large Load Diff
+460 -474
View File
File diff suppressed because it is too large Load Diff
+460 -474
View File
File diff suppressed because it is too large Load Diff
+460 -474
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-17
View File
@@ -4271,23 +4271,6 @@ void create_execp(GtkWidget *notebook, int i)
gtk_table_set_col_spacings(GTK_TABLE(table), COL_SPACING); gtk_table_set_col_spacings(GTK_TABLE(table), COL_SPACING);
row = 0, col = 2; row = 0, col = 2;
label = gtk_label_new(_("Name"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_widget_show(label);
gtk_table_attach(GTK_TABLE(table), label, col, col + 1, row, row + 1, GTK_FILL, 0, 0, 0);
col++;
executor->execp_name = gtk_entry_new();
gtk_widget_show(executor->execp_name);
gtk_entry_set_width_chars(GTK_ENTRY(executor->execp_name), 20);
gtk_entry_set_max_length(GTK_ENTRY(executor->execp_name), 20);
gtk_table_attach(GTK_TABLE(table), executor->execp_name, col, col + 1, row, row + 1, GTK_FILL, 0, 0, 0);
col++;
gtk_widget_set_tooltip_text(executor->execp_name,
_("Specifies a name that can be used with `tint2-send refresh-execp` to re-execute "
"the command."));
row++, col = 2;
label = gtk_label_new(_("Command")); label = gtk_label_new(_("Command"));
gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
gtk_widget_show(label); gtk_widget_show(label);
-1
View File
@@ -132,7 +132,6 @@ typedef struct Executor {
GtkWidget *container; GtkWidget *container;
GtkWidget *page_execp; GtkWidget *page_execp;
GtkWidget *page_label; GtkWidget *page_label;
GtkWidget *execp_name;
GtkWidget *execp_command, *execp_interval, *execp_has_icon, *execp_cache_icon, *execp_show_tooltip; GtkWidget *execp_command, *execp_interval, *execp_has_icon, *execp_cache_icon, *execp_show_tooltip;
GtkWidget *execp_continuous, *execp_markup, *execp_tooltip, *execp_monitor; GtkWidget *execp_continuous, *execp_markup, *execp_tooltip, *execp_monitor;
GtkWidget *execp_left_command, *execp_right_command; GtkWidget *execp_left_command, *execp_right_command;
-3
View File
@@ -857,7 +857,6 @@ void config_write_execp(FILE *fp)
Executor *executor = &g_array_index(executors, Executor, i); Executor *executor = &g_array_index(executors, Executor, i);
fprintf(fp, "execp = new\n"); fprintf(fp, "execp = new\n");
fprintf(fp, "execp_name = %s\n", gtk_entry_get_text(GTK_ENTRY(executor->execp_name)));
fprintf(fp, "execp_command = %s\n", gtk_entry_get_text(GTK_ENTRY(executor->execp_command))); fprintf(fp, "execp_command = %s\n", gtk_entry_get_text(GTK_ENTRY(executor->execp_command)));
fprintf(fp, "execp_interval = %d\n", (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(executor->execp_interval))); fprintf(fp, "execp_interval = %d\n", (int)gtk_spin_button_get_value(GTK_SPIN_BUTTON(executor->execp_interval)));
fprintf(fp, fprintf(fp,
@@ -1963,8 +1962,6 @@ void add_entry(char *key, char *value)
/* Executor */ /* Executor */
else if (strcmp(key, "execp") == 0) { else if (strcmp(key, "execp") == 0) {
execp_create_new(); execp_create_new();
} else if (strcmp(key, "execp_name") == 0) {
gtk_entry_set_text(GTK_ENTRY(execp_get_last()->execp_name), value);
} else if (strcmp(key, "execp_command") == 0) { } else if (strcmp(key, "execp_command") == 0) {
gtk_entry_set_text(GTK_ENTRY(execp_get_last()->execp_command), value); gtk_entry_set_text(GTK_ENTRY(execp_get_last()->execp_command), value);
} else if (strcmp(key, "execp_interval") == 0) { } else if (strcmp(key, "execp_interval") == 0) {
-3
View File
@@ -122,9 +122,6 @@ void server_init_atoms()
server.atom.XdndActionCopy = XInternAtom(server.display, "XdndActionCopy", False); server.atom.XdndActionCopy = XInternAtom(server.display, "XdndActionCopy", False);
server.atom.XdndFinished = XInternAtom(server.display, "XdndFinished", False); server.atom.XdndFinished = XInternAtom(server.display, "XdndFinished", False);
server.atom.TARGETS = XInternAtom(server.display, "TARGETS", False); server.atom.TARGETS = XInternAtom(server.display, "TARGETS", False);
// tint2 atoms
server.atom.TINT2_REFRESH_EXECP = XInternAtom(server.display, "_TINT2_REFRESH_EXECP", False);
} }
const char *GetAtomName(Display *disp, Atom a) const char *GetAtomName(Display *disp, Atom a)
-1
View File
@@ -91,7 +91,6 @@ typedef struct Global_atom {
Atom XdndActionCopy; Atom XdndActionCopy;
Atom XdndFinished; Atom XdndFinished;
Atom TARGETS; Atom TARGETS;
Atom TINT2_REFRESH_EXECP;
} Global_atom; } Global_atom;
typedef struct Property { typedef struct Property {