Compare commits

..

11 Commits

Author SHA1 Message Date
o9000
46371fe816 Release 0.13.3 2017-03-25 12:00:25 +01:00
o9000
bfe4873204 Fix regression (bad merge in commit 61a80b9) 2017-03-22 17:58:06 +01:00
o9000
acd1ed5768 tint2conf: Do not search for icons in all icon themes (issue #563) 2017-03-20 18:06:49 +01:00
o9000
b6a4fe03df Merge branch 'patch-4' into 'master'
Update ru.po

See merge request !25
2017-03-20 16:57:02 +00:00
Vladimir
b25ad07c30 wording tweak 2017-03-20 14:57:37 +00:00
Vladimir
ffcd53e989 Update ru.po 2017-03-20 14:51:23 +00:00
o9000
4e22e0f4e7 Release 0.13.2 2017-03-19 11:56:48 +01:00
o9000
d6a40c7523 Fix compilation under Linux 2017-03-19 11:41:51 +01:00
o9000
4ee2f4e7de Fix compilation under FreeBSD 2017-03-18 23:06:52 +01:00
o9000
1567e56a09 Update README.md 2017-03-12 17:25:28 +00:00
o9000
639ccbf16c Allow long lines in tint2conf 2017-03-12 17:41:26 +01:00
20 changed files with 1686 additions and 1544 deletions

View File

@@ -82,7 +82,13 @@ if( NOT IMLIB_BUILD_WITH_X )
message( FATAL_ERROR "Imlib is not built with X support" )
endif( NOT IMLIB_BUILD_WITH_X )
add_definitions( -D_POSIX_C_SOURCE=200809L -D_BSD_SOURCE -D_DEFAULT_SOURCE )
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_definitions( -D_POSIX_C_SOURCE=200809L -D_BSD_SOURCE -D_DEFAULT_SOURCE )
else(CMAKE_SYSTEM_NAME STREQUAL "Linux")
add_definitions( -D_WITH_GETLINE )
endif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
include_directories( ${PROJECT_BINARY_DIR}
src
@@ -243,7 +249,7 @@ endif( RT_LIBRARY )
target_link_libraries( tint2 m )
add_dependencies( tint2 version )
set_target_properties( tint2 PROPERTIES COMPILE_FLAGS "-Wall -Wpointer-arith -fno-strict-aliasing -pthread -std=c99 ${ASAN_C_FLAGS}" )
set_target_properties( tint2 PROPERTIES COMPILE_FLAGS "-Wall -Wpointer-arith -fno-strict-aliasing -pthread -std=c11 ${ASAN_C_FLAGS}" )
set_target_properties( tint2 PROPERTIES LINK_FLAGS "-pthread -fno-strict-aliasing ${ASAN_L_FLAGS} ${BACKTRACE_L_FLAGS}" )
install( TARGETS tint2 DESTINATION bin )

View File

@@ -1,3 +1,12 @@
2017-03-25 0.13.3
- Fixes:
- Fixed autohide for non-bottom panels (issue #632)
- Translations updated (contributed by Vladimir)
2017-03-19 0.13.2
- Fixes:
- Fixed compilation under FreeBSD
2017-03-12 0.13.1
- Fixes:
- Fixed compilation with new glibc (issue #625)

View File

@@ -1,5 +1,5 @@
# Latest stable release: 0.13.1
Changes: https://gitlab.com/o9000/tint2/blob/0.13.1/ChangeLog
# Latest stable release: 0.13.3
Changes: https://gitlab.com/o9000/tint2/blob/0.13.3/ChangeLog
Documentation: [doc/tint2.md](doc/tint2.md)
@@ -8,7 +8,7 @@ Compile it with (after you install the [dependencies](https://gitlab.com/o9000/t
```
git clone https://gitlab.com/o9000/tint2.git
cd tint2
git checkout 0.13.1
git checkout 0.13.3
mkdir build
cd build
cmake ..
@@ -87,7 +87,7 @@ tint2 is a simple panel/taskbar made for modern X window managers. It was specif
## Demos
* 0.13.1: [Compact panel, separator, color gradients](https://gitlab.com/o9000/tint2/wikis/whats-new-0.13.1.0.gif)
* 0.12.4: [Executor](https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.4.gif)
* 0.12.3: [Mouse over effects](https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.3.gif)
* 0.12: [Distribute size between taskbars, freespace](https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.gif)
* [Compact panel, separator, color gradients](https://gitlab.com/o9000/tint2/wikis/whats-new-0.13.0.gif)
* [Executor](https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.4.gif)
* [Mouse over effects](https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.3.gif)
* [Distribute size between taskbars, freespace](https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.gif)

View File

@@ -199,9 +199,9 @@ pre {
</style>
</head>
<body>
<h1 id="latest-stable-release-0-13-1"><span class="md2man-title">Latest</span> <span class="md2man-section">stable</span> <span class="md2man-date">release:</span> <span class="md2man-source">0.13.1</span><a name="latest-stable-release-0-13-1" href="#latest-stable-release-0-13-1" class="md2man-permalink" title="permalink"></a></h1><p>Changes: <a href="https://gitlab.com/o9000/tint2/blob/0.13.1/ChangeLog">https://gitlab.com/o9000/tint2/blob/0.13.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><pre class="highlight plaintext"><code>git clone https://gitlab.com/o9000/tint2.git
<h1 id="latest-stable-release-0-13-3"><span class="md2man-title">Latest</span> <span class="md2man-section">stable</span> <span class="md2man-date">release:</span> <span class="md2man-source">0.13.3</span><a name="latest-stable-release-0-13-3" href="#latest-stable-release-0-13-3" class="md2man-permalink" title="permalink"></a></h1><p>Changes: <a href="https://gitlab.com/o9000/tint2/blob/0.13.3/ChangeLog">https://gitlab.com/o9000/tint2/blob/0.13.3/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><pre class="highlight plaintext"><code>git clone https://gitlab.com/o9000/tint2.git
cd tint2
git checkout 0.13.1
git checkout 0.13.3
mkdir build
cd build
cmake ..
@@ -256,10 +256,10 @@ make -j4
</ul>
<h1 id="screenshots">Screenshots<a name="screenshots" href="#screenshots" class="md2man-permalink" title="permalink"></a></h1><h2 id="default-config">Default config:<a name="default-config" href="#default-config" class="md2man-permalink" title="permalink"></a></h2><p><img src="https://gitlab.com/o9000/tint2/uploads/948fa74eca60864352a033580350b4c3/Screenshot_2016-01-23_14-42-57.png" alt="Screenshot_2016-01-23_14-42-57"></p><h2 id="various-configs">Various configs:<a name="various-configs" href="#various-configs" class="md2man-permalink" title="permalink"></a></h2><p><img src="https://gitlab.com/o9000/tint2/wikis/screenshot.png" alt="screenshot"></p><h2 id="demos">Demos<a name="demos" href="#demos" class="md2man-permalink" title="permalink"></a></h2>
<ul>
<li>0.13.1: <a href="https://gitlab.com/o9000/tint2/wikis/whats-new-0.13.1.0.gif">Compact panel, separator, color gradients</a></li>
<li>0.12.4: <a href="https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.4.gif">Executor</a></li>
<li>0.12.3: <a href="https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.3.gif">Mouse over effects</a></li>
<li>0.12: <a href="https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.gif">Distribute size between taskbars, freespace</a></li>
<li><a href="https://gitlab.com/o9000/tint2/wikis/whats-new-0.13.0.gif">Compact panel, separator, color gradients</a></li>
<li><a href="https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.4.gif">Executor</a></li>
<li><a href="https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.3.gif">Mouse over effects</a></li>
<li><a href="https://gitlab.com/o9000/tint2/wikis/whats-new-0.12.gif">Distribute size between taskbars, freespace</a></li>
</ul>
</body>
</html>

View File

@@ -1,4 +1,4 @@
.TH TINT2 1 "2017\-03\-12"
.TH TINT2 1 "2017\-03\-12" 0.13.3
.SH NAME
.PP
tint2 \- lightweight panel/taskbar

View File

@@ -1,4 +1,4 @@
# TINT2 1 "2017-03-12"
# TINT2 1 "2017-03-12" 0.13.3
## NAME
tint2 - lightweight panel/taskbar

View File

@@ -1,46 +1,6 @@
#!/bin/sh
MAJOR=0.13
DIRTY=""
if git status 1>/dev/null 2>/dev/null
then
git update-index -q --ignore-submodules --refresh
# Disallow unstaged changes in the working tree
if ! git diff-files --quiet --ignore-submodules --
then
if [ "$1" = "--strict" ]
then
echo >&2 "Error: there are unstaged changes."
git diff-files --name-status -r --ignore-submodules -- >&2
exit 1
else
DIRTY="-dirty"
fi
fi
# Disallow uncommitted changes in the index
if ! git diff-index --cached --quiet HEAD --ignore-submodules --
then
if [ "$1" = "--strict" ]
then
echo >&2 "Error: there are uncommitted changes."
git diff-index --cached --name-status -r --ignore-submodules HEAD -- >&2
exit 1
else
DIRTY="-dirty"
fi
fi
VERSION=$(git describe --exact-match 2>/dev/null || echo "$MAJOR-git$(git show -s --pretty=format:%ci | cut -d ' ' -f 1 | tr -d '-').$(git show -s --pretty=format:%h)")$DIRTY
else
VERSION=$(head -n 1 ChangeLog | cut -d ' ' -f 2)
if [ $VERSION = "master" ]
then
VERSION=$VERSION-$(head -n 1 ChangeLog | cut -d ' ' -f 1)
fi
fi
VERSION=$(echo "$VERSION" | sed 's/^v//')
VERSION=0.13.3
echo '#define VERSION_STRING "'$VERSION'"' > version.h
echo $VERSION

View File

@@ -2,24 +2,6 @@
# Usage: ./make_release.sh
# Creates a tar.gz archive of the current tree.
#
# To bump the version number for the current commit (make sure you are in HEAD!), run manually:
#
# git tag -a v0.12 -m 'Version 0.12'
#
# To generate a release for an older tagged commit, first list the tags with:
#
# git tag
#
# then checkout the tagged commit with:
#
# git checkout tags/v0.1
#
# Finally, to revert to HEAD:
#
# git checkout master
#
# See more at https://gitlab.com/o9000/tint2/wikis/Development
VERSION=$(./get_version.sh --strict)
if [ ! $? -eq 0 ]
@@ -28,21 +10,10 @@ then
exit 1
fi
DIR=tint2-$VERSION
ARCHIVE=$DIR.tar.gz
echo "Making release $DIR"
rm -rf $DIR $ARCHIVE
ARCHIVE=tint2-$VERSION.tar.gz
git checkout-index --prefix=$DIR/ -a
# Delete unneeded files
rm -f $DIR/make_release.sh
echo "echo \"#define VERSION_STRING \\\"$VERSION\\\"\" > version.h" > $DIR/get_version.sh
# Create tarball and remove the exported directory
tar -czf $ARCHIVE $DIR
rm -rf $DIR
echo "Making release tint2-$VERSION"
git archive --format=tar.gz --prefix=tint2-$VERSION/ v$VERSION >$ARCHIVE
sha1sum -b $ARCHIVE
sha256sum -b $ARCHIVE

View File

@@ -1178,20 +1178,21 @@ void add_entry(char *key, char *value)
gboolean config_read_file(const char *path)
{
FILE *fp;
char line[512];
char *key, *value;
if ((fp = fopen(path, "r")) == NULL)
FILE *fp = fopen(path, "r");
if (!fp)
return FALSE;
while (fgets(line, sizeof(line), fp) != NULL) {
char* line = NULL;
size_t line_size = 0;
while (getline(&line, &line_size, fp) >= 0) {
char *key, *value;
if (parse_line(line, &key, &value)) {
add_entry(key, value);
free(key);
free(value);
}
}
free(line);
fclose(fp);
if (!read_panel_position) {

View File

@@ -643,6 +643,7 @@ void execp_timer_callback(void *arg)
close(pipe_fd[0]);
return;
} else if (child == 0) {
fprintf(stderr, "Executing: %s\n", execp->backend->command);
// We are in the child
close(pipe_fd[0]);
dup2(pipe_fd[1], 1); // 1 is stdout

View File

@@ -26,6 +26,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
static gint compare_strings(gconstpointer a, gconstpointer b)
{

View File

@@ -740,7 +740,7 @@ void add_icon_path_to_cache(IconThemeWrapper *wrapper, const char *icon_name, in
g_free(key);
}
char *get_icon_path(IconThemeWrapper *wrapper, const char *icon_name, int size)
char *get_icon_path(IconThemeWrapper *wrapper, const char *icon_name, int size, gboolean use_fallbacks)
{
if (!wrapper)
return NULL;
@@ -761,6 +761,8 @@ char *get_icon_path(IconThemeWrapper *wrapper, const char *icon_name, int size)
return path;
}
if (!use_fallbacks)
goto notfound;
fprintf(stderr, YELLOW "Icon not found in default theme: %s" RESET "\n", icon_name);
load_fallbacks(wrapper);

View File

@@ -51,7 +51,7 @@ void free_icon_theme(IconTheme *theme);
// Returns the full path to an icon file (or NULL) given the list of icon themes to search and the icon name
// Note: needs to be released with free().
char *get_icon_path(IconThemeWrapper *wrapper, const char *icon_name, int size);
char *get_icon_path(IconThemeWrapper *wrapper, const char *icon_name, int size, gboolean use_fallbacks);
// Returns a list of the directories used to store icons.
// Do not free the result, it is cached.

View File

@@ -565,13 +565,13 @@ void launcher_reload_icon_image(Launcher *launcher, LauncherIcon *launcherIcon)
free_icon(launcherIcon->image_pressed);
launcherIcon->image = NULL;
char *new_icon_path = get_icon_path(launcher->icon_theme_wrapper, launcherIcon->icon_name, launcherIcon->icon_size);
char *new_icon_path = get_icon_path(launcher->icon_theme_wrapper, launcherIcon->icon_name, launcherIcon->icon_size, TRUE);
if (new_icon_path)
launcherIcon->image = load_image(new_icon_path, 1);
// On loading error, fallback to default
if (!launcherIcon->image) {
free(new_icon_path);
new_icon_path = get_icon_path(launcher->icon_theme_wrapper, DEFAULT_ICON, launcherIcon->icon_size);
new_icon_path = get_icon_path(launcher->icon_theme_wrapper, DEFAULT_ICON, launcherIcon->icon_size, TRUE);
if (new_icon_path)
launcherIcon->image = imlib_load_image_immediately(new_icon_path);
}

View File

@@ -708,36 +708,68 @@ void set_panel_window_geometry(Panel *panel)
if (!panel->is_hidden) {
if (panel_horizontal) {
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy,
panel->area.width,
panel->area.height);
if (panel_position & TOP)
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy,
panel->area.width,
panel->area.height);
else
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy,
panel->area.width,
panel->area.height);
} else {
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy,
panel->area.width,
panel->area.height);
if (panel_position & LEFT)
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy,
panel->area.width,
panel->area.height);
else
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy,
panel->area.width,
panel->area.height);
}
} else {
int diff = (panel_horizontal ? panel->area.height : panel->area.width) - panel_autohide_height;
if (panel_horizontal) {
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy + diff,
panel->hidden_width,
panel->hidden_height);
if (panel_position & TOP)
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy,
panel->hidden_width,
panel->hidden_height);
else
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy + diff,
panel->hidden_width,
panel->hidden_height);
} else {
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx + diff,
panel->posy,
panel->hidden_width,
panel->hidden_height);
if (panel_position & LEFT)
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx,
panel->posy,
panel->hidden_width,
panel->hidden_height);
else
XMoveResizeWindow(server.display,
panel->main_win,
panel->posx + diff,
panel->posy,
panel->hidden_width,
panel->hidden_height);
}
}
}

View File

@@ -269,10 +269,6 @@ const char *signal_name(int sig)
return "SIGVTALRM: Virtual alarm clock (4.2 BSD).";
case SIGPROF:
return "SIGPROF: Profiling alarm clock (4.2 BSD).";
case SIGWINCH:
return "SIGWINCH: Window size change (4.3 BSD, Sun).";
case SIGIO:
return "SIGIO: Pollable event occurred (System V) / I/O now possible (4.2 BSD).";
// case SIGPWR: return "SIGPWR: Power failure restart (System V).";
case SIGSYS:
return "SIGSYS: Bad system call.";

View File

@@ -63,7 +63,7 @@ target_link_libraries( tint2conf ${X11_T2C_LIBRARIES}
add_definitions( -DINSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\" )
add_definitions( -DLOCALEDIR=\"${CMAKE_INSTALL_FULL_LOCALEDIR}\" )
add_definitions( -DGETTEXT_PACKAGE=\"tint2conf\" )
set_target_properties( tint2conf PROPERTIES COMPILE_FLAGS "-Wall -pthread -std=c99" )
set_target_properties( tint2conf PROPERTIES COMPILE_FLAGS "-Wall -pthread -std=c11" )
set_target_properties( tint2conf PROPERTIES LINK_FLAGS "-pthread" )
add_subdirectory(po)

File diff suppressed because it is too large Load Diff

View File

@@ -1640,7 +1640,7 @@ GdkPixbuf *load_icon(const gchar *name)
process_events();
int size = 22;
char *path = get_icon_path(icon_theme, name, size);
char *path = get_icon_path(icon_theme, name, size, FALSE);
GdkPixbuf *pixbuf = path ? gdk_pixbuf_new_from_file_at_size(path, size, size, NULL) : NULL;
free(path);
return pixbuf;

View File

@@ -38,13 +38,6 @@ void config_read_file(const char *path)
background_create_new();
gradient_create_new(GRADIENT_CONFIG_VERTICAL);
FILE *fp;
char line[512];
char *key, *value;
if ((fp = fopen(path, "r")) == NULL)
return;
config_has_panel_items = 0;
config_has_battery = 0;
config_battery_enabled = 0;
@@ -54,14 +47,21 @@ void config_read_file(const char *path)
no_items_systray_enabled = 0;
no_items_battery_enabled = 0;
while (fgets(line, sizeof(line), fp) != NULL) {
if (parse_line(line, &key, &value)) {
add_entry(key, value);
free(key);
free(value);
FILE *fp = fopen(path, "r");
if (fp) {
char* line = NULL;
size_t line_size = 0;
while (getline(&line, &line_size, fp) >= 0) {
char *key, *value;
if (parse_line(line, &key, &value)) {
add_entry(key, value);
free(key);
free(value);
}
}
free(line);
fclose(fp);
}
fclose(fp);
finalize_gradient();
finalize_bg();