ClipIt-v1.3.11-22122010001
+ Fixed: Indicator menu now actually refreshes properly. + Fixed: Removed "Full history" and changed the wording in the "Preferences" dialog. + Fixed: Imported "Select first item in menu" fix from Parcellite 0.9.3. Changes to be committed: modified: ChangeLog modified: autom4te.cache/output.0 modified: autom4te.cache/output.1 modified: autom4te.cache/traces.1 modified: configure modified: configure.in modified: src/history.c modified: src/main.c modified: src/main.h modified: src/preferences.c modified: src/preferences.h
This commit is contained in:
parent
3af1b702e6
commit
1cb116c45a
@ -1,3 +1,9 @@
|
||||
ClipIt-v1.3.11-22122010001 - 22 Dec. 2010
|
||||
+ Fixed: Indicator menu now actually refreshes properly.
|
||||
+ Fixed: Removed "Full history" and changed the wording in the
|
||||
"Preferences" dialog.
|
||||
+ Fixed: Imported "Select first item in menu" fix from Parcellite 0.9.3.
|
||||
|
||||
ClipIt-v1.3.10-21122010001 - 21 Dec. 2010
|
||||
+ Fixed: Imported fixes from Parcellite 0.9.3 (thanks to Doug Springer).
|
||||
+ Fixed: Fixed cast warnings when building on x86 machines.
|
||||
|
@ -1,6 +1,6 @@
|
||||
@%:@! /bin/sh
|
||||
@%:@ Guess values for system-dependent variables and create Makefiles.
|
||||
@%:@ Generated by GNU Autoconf 2.67 for clipit 1.3.10.
|
||||
@%:@ Generated by GNU Autoconf 2.67 for clipit 1.3.11.
|
||||
@%:@
|
||||
@%:@ Report bugs to <oss@rspwn.com>.
|
||||
@%:@
|
||||
@ -552,8 +552,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='clipit'
|
||||
PACKAGE_TARNAME='clipit'
|
||||
PACKAGE_VERSION='1.3.10'
|
||||
PACKAGE_STRING='clipit 1.3.10'
|
||||
PACKAGE_VERSION='1.3.11'
|
||||
PACKAGE_STRING='clipit 1.3.11'
|
||||
PACKAGE_BUGREPORT='oss@rspwn.com'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -1328,7 +1328,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures clipit 1.3.10 to adapt to many kinds of systems.
|
||||
\`configure' configures clipit 1.3.11 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1398,7 +1398,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of clipit 1.3.10:";;
|
||||
short | recursive ) echo "Configuration of clipit 1.3.11:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1511,7 +1511,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
clipit configure 1.3.10
|
||||
clipit configure 1.3.11
|
||||
generated by GNU Autoconf 2.67
|
||||
|
||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
@ -1880,7 +1880,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by clipit $as_me 1.3.10, which was
|
||||
It was created by clipit $as_me 1.3.11, which was
|
||||
generated by GNU Autoconf 2.67. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -2696,7 +2696,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE=clipit
|
||||
VERSION=1.3.10
|
||||
VERSION=1.3.11
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -9764,7 +9764,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by clipit $as_me 1.3.10, which was
|
||||
This file was extended by clipit $as_me 1.3.11, which was
|
||||
generated by GNU Autoconf 2.67. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -9830,7 +9830,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
clipit config.status 1.3.10
|
||||
clipit config.status 1.3.11
|
||||
configured by $0, generated by GNU Autoconf 2.67,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
@%:@! /bin/sh
|
||||
@%:@ Guess values for system-dependent variables and create Makefiles.
|
||||
@%:@ Generated by GNU Autoconf 2.67 for clipit 1.3.10.
|
||||
@%:@ Generated by GNU Autoconf 2.67 for clipit 1.3.11.
|
||||
@%:@
|
||||
@%:@ Report bugs to <oss@rspwn.com>.
|
||||
@%:@
|
||||
@ -552,8 +552,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='clipit'
|
||||
PACKAGE_TARNAME='clipit'
|
||||
PACKAGE_VERSION='1.3.10'
|
||||
PACKAGE_STRING='clipit 1.3.10'
|
||||
PACKAGE_VERSION='1.3.11'
|
||||
PACKAGE_STRING='clipit 1.3.11'
|
||||
PACKAGE_BUGREPORT='oss@rspwn.com'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -1328,7 +1328,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures clipit 1.3.10 to adapt to many kinds of systems.
|
||||
\`configure' configures clipit 1.3.11 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1398,7 +1398,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of clipit 1.3.10:";;
|
||||
short | recursive ) echo "Configuration of clipit 1.3.11:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1511,7 +1511,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
clipit configure 1.3.10
|
||||
clipit configure 1.3.11
|
||||
generated by GNU Autoconf 2.67
|
||||
|
||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
@ -1880,7 +1880,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by clipit $as_me 1.3.10, which was
|
||||
It was created by clipit $as_me 1.3.11, which was
|
||||
generated by GNU Autoconf 2.67. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -2696,7 +2696,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE=clipit
|
||||
VERSION=1.3.10
|
||||
VERSION=1.3.11
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -9764,7 +9764,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by clipit $as_me 1.3.10, which was
|
||||
This file was extended by clipit $as_me 1.3.11, which was
|
||||
generated by GNU Autoconf 2.67. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -9830,7 +9830,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
clipit config.status 1.3.10
|
||||
clipit config.status 1.3.11
|
||||
configured by $0, generated by GNU Autoconf 2.67,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -8,7 +8,7 @@ m4trace:aclocal.m4:2010: -1- m4_include([m4/lib-prefix.m4])
|
||||
m4trace:aclocal.m4:2011: -1- m4_include([m4/nls.m4])
|
||||
m4trace:aclocal.m4:2012: -1- m4_include([m4/po.m4])
|
||||
m4trace:aclocal.m4:2013: -1- m4_include([m4/progtest.m4])
|
||||
m4trace:configure.in:5: -1- AC_INIT([clipit], [1.3.10], [oss@rspwn.com])
|
||||
m4trace:configure.in:5: -1- AC_INIT([clipit], [1.3.11], [oss@rspwn.com])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([^_?A[CHUM]_])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([_AC_])
|
||||
m4trace:configure.in:5: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
|
||||
|
20
configure
vendored
20
configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.67 for clipit 1.3.10.
|
||||
# Generated by GNU Autoconf 2.67 for clipit 1.3.11.
|
||||
#
|
||||
# Report bugs to <oss@rspwn.com>.
|
||||
#
|
||||
@ -552,8 +552,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='clipit'
|
||||
PACKAGE_TARNAME='clipit'
|
||||
PACKAGE_VERSION='1.3.10'
|
||||
PACKAGE_STRING='clipit 1.3.10'
|
||||
PACKAGE_VERSION='1.3.11'
|
||||
PACKAGE_STRING='clipit 1.3.11'
|
||||
PACKAGE_BUGREPORT='oss@rspwn.com'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@ -1328,7 +1328,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures clipit 1.3.10 to adapt to many kinds of systems.
|
||||
\`configure' configures clipit 1.3.11 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@ -1398,7 +1398,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of clipit 1.3.10:";;
|
||||
short | recursive ) echo "Configuration of clipit 1.3.11:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -1511,7 +1511,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
clipit configure 1.3.10
|
||||
clipit configure 1.3.11
|
||||
generated by GNU Autoconf 2.67
|
||||
|
||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
@ -1880,7 +1880,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by clipit $as_me 1.3.10, which was
|
||||
It was created by clipit $as_me 1.3.11, which was
|
||||
generated by GNU Autoconf 2.67. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@ -2696,7 +2696,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE=clipit
|
||||
VERSION=1.3.10
|
||||
VERSION=1.3.11
|
||||
|
||||
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
@ -9764,7 +9764,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by clipit $as_me 1.3.10, which was
|
||||
This file was extended by clipit $as_me 1.3.11, which was
|
||||
generated by GNU Autoconf 2.67. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -9830,7 +9830,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
clipit config.status 1.3.10
|
||||
clipit config.status 1.3.11
|
||||
configured by $0, generated by GNU Autoconf 2.67,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Autoconf/automake.
|
||||
# -------------------------------------------------------------------------------
|
||||
AC_PREREQ([2.5])
|
||||
AC_INIT([clipit], [1.3.10], [oss@rspwn.com])
|
||||
AC_INIT([clipit], [1.3.11], [oss@rspwn.com])
|
||||
AM_INIT_AUTOMAKE([AC_PACKAGE_TARNAME()], [AC_PACKAGE_VERSION()])
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
@ -19,6 +19,10 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <string.h>
|
||||
|
145
src/main.c
145
src/main.c
@ -57,11 +57,11 @@ static gboolean actions_lock = FALSE;
|
||||
/* Init preferences structure */
|
||||
prefs_t prefs = {DEF_USE_COPY, DEF_USE_PRIMARY, DEF_SYNCHRONIZE,
|
||||
DEF_SHOW_INDEXES, DEF_SAVE_URIS, DEF_SAVE_HISTORY,
|
||||
DEF_HISTORY_LIMIT, DEF_SMALL_HISTORY, DEF_HISTORY_SMALL,
|
||||
DEF_HYPERLINKS_ONLY, DEF_CONFIRM_CLEAR, DEF_FULL_HIST_BUTTON,
|
||||
DEF_SINGLE_LINE, DEF_REVERSE_HISTORY, DEF_ITEM_LENGTH,
|
||||
DEF_ELLIPSIZE, INIT_HISTORY_KEY, INIT_ACTIONS_KEY,
|
||||
INIT_MENU_KEY, INIT_SEARCH_KEY, DEF_NO_ICON};
|
||||
DEF_HISTORY_LIMIT, DEF_ITEMS_MENU, DEF_HYPERLINKS_ONLY,
|
||||
DEF_CONFIRM_CLEAR, DEF_SINGLE_LINE, DEF_REVERSE_HISTORY,
|
||||
DEF_ITEM_LENGTH, DEF_ELLIPSIZE, INIT_HISTORY_KEY,
|
||||
INIT_ACTIONS_KEY, INIT_MENU_KEY, INIT_SEARCH_KEY,
|
||||
DEF_NO_ICON};
|
||||
|
||||
/* Called every CHECK_INTERVAL seconds to check for new items */
|
||||
static gboolean item_check(gpointer data)
|
||||
@ -465,96 +465,8 @@ static gboolean show_actions_menu(gpointer data)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static gboolean show_history_menu_full(gpointer data)
|
||||
{
|
||||
/* Declare some variables */
|
||||
GtkWidget *menu, *menu_item, *item_label;
|
||||
|
||||
/* Create the menu */
|
||||
menu = gtk_menu_new();
|
||||
g_signal_connect((GObject*)menu, "selection-done", (GCallback)gtk_widget_destroy, NULL);
|
||||
/* Items */
|
||||
if ((history != NULL) && (history->data != NULL))
|
||||
{
|
||||
/* Declare some variables */
|
||||
GSList* element;
|
||||
gint element_number = 0;
|
||||
gchar* primary_temp = gtk_clipboard_wait_for_text(primary);
|
||||
gchar* clipboard_temp = gtk_clipboard_wait_for_text(clipboard);
|
||||
/* Reverse history if enabled */
|
||||
if (prefs.reverse_history)
|
||||
{
|
||||
history = g_slist_reverse(history);
|
||||
element_number = g_slist_length(history) - 1;
|
||||
}
|
||||
/* Go through each element and adding each */
|
||||
for (element = history; element != NULL; element = element->next)
|
||||
{
|
||||
GString* string = g_string_new((gchar*)element->data);
|
||||
/* Ellipsize text */
|
||||
string = ellipsize_string(string);
|
||||
/* Remove control characters */
|
||||
string = remove_newlines_string(string);
|
||||
/* Make new item with ellipsized text */
|
||||
gchar* list_item;
|
||||
if (prefs.show_indexes)
|
||||
{
|
||||
list_item = g_strdup_printf("%d. %s", (element_number+1), string->str);
|
||||
} else {
|
||||
list_item = g_strdup(string->str);
|
||||
}
|
||||
menu_item = gtk_menu_item_new_with_label(list_item);
|
||||
g_signal_connect((GObject*)menu_item, "activate", (GCallback)item_selected, GINT_TO_POINTER(element_number));
|
||||
/* Modify menu item label properties */
|
||||
item_label = gtk_bin_get_child((GtkBin*)menu_item);
|
||||
gtk_label_set_single_line_mode((GtkLabel*)item_label, prefs.single_line);
|
||||
|
||||
/* Check if item is also clipboard text and make bold */
|
||||
if ((clipboard_temp) && (g_strcmp0((gchar*)element->data, clipboard_temp) == 0))
|
||||
{
|
||||
gchar* bold_text = g_markup_printf_escaped("<b>%s</b>", list_item);
|
||||
gtk_label_set_markup((GtkLabel*)item_label, bold_text);
|
||||
g_free(bold_text);
|
||||
}
|
||||
else if ((primary_temp) && (g_strcmp0((gchar*)element->data, primary_temp) == 0))
|
||||
{
|
||||
gchar* italic_text = g_markup_printf_escaped("<i>%s</i>", list_item);
|
||||
gtk_label_set_markup((GtkLabel*)item_label, italic_text);
|
||||
g_free(italic_text);
|
||||
}
|
||||
g_free(list_item);
|
||||
/* Append item */
|
||||
gtk_menu_shell_append((GtkMenuShell*)menu, menu_item);
|
||||
/* Prepare for next item */
|
||||
g_string_free(string, TRUE);
|
||||
if (prefs.reverse_history)
|
||||
element_number--;
|
||||
else
|
||||
element_number++;
|
||||
}
|
||||
/* Cleanup */
|
||||
g_free(primary_temp);
|
||||
g_free(clipboard_temp);
|
||||
/* Return history to normal if reversed */
|
||||
if (prefs.reverse_history)
|
||||
history = g_slist_reverse(history);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Nothing in history so adding empty */
|
||||
menu_item = gtk_menu_item_new_with_label(_("Empty"));
|
||||
gtk_widget_set_sensitive(menu_item, FALSE);
|
||||
gtk_menu_shell_append((GtkMenuShell*)menu, menu_item);
|
||||
}
|
||||
/* Popup the menu... */
|
||||
gtk_widget_show_all(menu);
|
||||
gtk_menu_popup((GtkMenu*)menu, NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time());
|
||||
/* Return FALSE so the g_timeout_add() function is called only once */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Generates the small history menu */
|
||||
static gboolean show_history_menu_small(gpointer data)
|
||||
static gboolean show_history_menu(gpointer data)
|
||||
{
|
||||
/* Declare some variables */
|
||||
GtkWidget *menu, *menu_item, *menu_image, *item_label;
|
||||
@ -578,7 +490,7 @@ static gboolean show_history_menu_small(gpointer data)
|
||||
element_number = g_slist_length(history) - 1;
|
||||
}
|
||||
/* Go through each element and adding each */
|
||||
for (element = history; (element != NULL) && (element_number_small < prefs.history_small); element = element->next)
|
||||
for (element = history; (element != NULL) && (element_number_small < prefs.items_menu); element = element->next)
|
||||
{
|
||||
GString* string = g_string_new((gchar*)element->data);
|
||||
/* Ellipsize text */
|
||||
@ -638,31 +550,10 @@ static gboolean show_history_menu_small(gpointer data)
|
||||
gtk_widget_set_sensitive(menu_item, FALSE);
|
||||
gtk_menu_shell_append((GtkMenuShell*)menu, menu_item);
|
||||
}
|
||||
/* -------------------- */
|
||||
/* Show full history button (if enabled) */
|
||||
if (!prefs.full_hist_button)
|
||||
{
|
||||
gtk_menu_shell_append((GtkMenuShell*)menu, gtk_separator_menu_item_new());
|
||||
menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Show full history"));
|
||||
menu_image = gtk_image_new_from_stock(GTK_STOCK_ZOOM_IN, GTK_ICON_SIZE_MENU);
|
||||
gtk_image_menu_item_set_image((GtkImageMenuItem*)menu_item, menu_image);
|
||||
g_signal_connect((GObject*)menu_item, "activate", (GCallback)show_history_menu_full, NULL);
|
||||
gtk_menu_shell_append((GtkMenuShell*)menu, menu_item);
|
||||
}
|
||||
/* Popup the menu... */
|
||||
gtk_widget_show_all(menu);
|
||||
gtk_menu_popup((GtkMenu*)menu, NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time());
|
||||
/* Return FALSE so the g_timeout_add() function is called only once */
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Called when status icon is left-clicked or the history menu hotkey is pressed */
|
||||
static gboolean show_history_menu()
|
||||
{
|
||||
if (prefs.small_history)
|
||||
g_timeout_add(POPUP_DELAY, show_history_menu_small, NULL);
|
||||
else
|
||||
g_timeout_add(POPUP_DELAY, show_history_menu_full, NULL);
|
||||
gtk_menu_shell_select_first((GtkMenuShell*)menu, TRUE);
|
||||
/* Return FALSE so the g_timeout_add() function is called only once */
|
||||
return FALSE;
|
||||
}
|
||||
@ -692,7 +583,7 @@ void create_app_indicator(gint create)
|
||||
element_number = g_slist_length(history) - 1;
|
||||
}
|
||||
/* Go through each element and adding each */
|
||||
for (element = history; (element != NULL) && (element_number_small < prefs.history_small); element = element->next)
|
||||
for (element = history; (element != NULL) && (element_number_small < prefs.items_menu); element = element->next)
|
||||
{
|
||||
GString* string = g_string_new((gchar*)element->data);
|
||||
/* Ellipsize text */
|
||||
@ -760,12 +651,6 @@ void create_app_indicator(gint create)
|
||||
menu_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, NULL);
|
||||
g_signal_connect((GObject*)menu_item, "activate", (GCallback)show_about_dialog, NULL);
|
||||
gtk_menu_shell_append((GtkMenuShell*)indicator_menu, menu_item);
|
||||
/* Full history button (if enabled) */
|
||||
menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Show full history"));
|
||||
menu_image = gtk_image_new_from_stock(GTK_STOCK_ZOOM_IN, GTK_ICON_SIZE_MENU);
|
||||
gtk_image_menu_item_set_image((GtkImageMenuItem*)menu_item, menu_image);
|
||||
g_signal_connect((GObject*)menu_item, "activate", (GCallback)show_history_menu_full, NULL);
|
||||
gtk_menu_shell_append((GtkMenuShell*)indicator_menu, menu_item);
|
||||
/* Manage history */
|
||||
menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Manage history"));
|
||||
menu_image = gtk_image_new_from_stock(GTK_STOCK_FIND, GTK_ICON_SIZE_MENU);
|
||||
@ -826,7 +711,7 @@ static gboolean show_clipit_menu()
|
||||
element_number = g_slist_length(history) - 1;
|
||||
}
|
||||
/* Go through each element and adding each */
|
||||
for (element = history; (element != NULL) && (element_number_small < prefs.history_small); element = element->next)
|
||||
for (element = history; (element != NULL) && (element_number_small < prefs.items_menu); element = element->next)
|
||||
{
|
||||
GString* string = g_string_new((gchar*)element->data);
|
||||
/* Ellipsize text */
|
||||
@ -894,15 +779,6 @@ static gboolean show_clipit_menu()
|
||||
menu_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, NULL);
|
||||
g_signal_connect((GObject*)menu_item, "activate", (GCallback)show_about_dialog, NULL);
|
||||
gtk_menu_shell_append((GtkMenuShell*)statusicon_menu, menu_item);
|
||||
/* Full history button (if enabled) */
|
||||
if (prefs.full_hist_button && prefs.small_history)
|
||||
{
|
||||
menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Show full history"));
|
||||
menu_image = gtk_image_new_from_stock(GTK_STOCK_ZOOM_IN, GTK_ICON_SIZE_MENU);
|
||||
gtk_image_menu_item_set_image((GtkImageMenuItem*)menu_item, menu_image);
|
||||
g_signal_connect((GObject*)menu_item, "activate", (GCallback)show_history_menu_full, NULL);
|
||||
gtk_menu_shell_append((GtkMenuShell*)statusicon_menu, menu_item);
|
||||
}
|
||||
/* Manage history */
|
||||
menu_item = gtk_image_menu_item_new_with_mnemonic(_("_Manage history"));
|
||||
menu_image = gtk_image_new_from_stock(GTK_STOCK_FIND, GTK_ICON_SIZE_MENU);
|
||||
@ -921,6 +797,7 @@ static gboolean show_clipit_menu()
|
||||
gtk_widget_show_all(statusicon_menu);
|
||||
gtk_widget_set_visible(statusicon_menu, TRUE);
|
||||
gtk_menu_popup((GtkMenu*)statusicon_menu, NULL, NULL, gtk_status_icon_position_menu, status_icon, 1, gtk_get_current_event_time());
|
||||
gtk_menu_shell_select_first((GtkMenuShell*)statusicon_menu, TRUE);
|
||||
|
||||
status_menu_lock = FALSE;
|
||||
}
|
||||
|
@ -41,9 +41,7 @@ typedef struct
|
||||
gboolean save_history; /* Save history */
|
||||
gint history_limit; /* Items in history */
|
||||
|
||||
gboolean small_history; /* Use small history */
|
||||
gint history_small; /* Items in small history */
|
||||
gboolean full_hist_button; /* Fix clipboard */
|
||||
gint items_menu; /* Items in small history */
|
||||
|
||||
gboolean hyperlinks_only; /* Hyperlinks only */
|
||||
gboolean confirm_clear; /* Confirm clear */
|
||||
|
@ -34,9 +34,8 @@ GtkWidget *copy_check,
|
||||
*synchronize_check,
|
||||
*show_indexes_check,
|
||||
*save_uris_check,
|
||||
*full_hist_check,
|
||||
*history_spin,
|
||||
*history_small,
|
||||
*items_menu,
|
||||
*charlength_spin,
|
||||
*ellipsize_combo,
|
||||
*history_key_entry,
|
||||
@ -44,7 +43,6 @@ GtkWidget *copy_check,
|
||||
*menu_key_entry,
|
||||
*search_key_entry,
|
||||
*save_check,
|
||||
*small_check,
|
||||
*confirm_check,
|
||||
*reverse_check,
|
||||
*linemode_check,
|
||||
@ -80,11 +78,9 @@ static void apply_preferences()
|
||||
prefs.save_uris = gtk_toggle_button_get_active((GtkToggleButton*)save_uris_check);
|
||||
prefs.save_history = gtk_toggle_button_get_active((GtkToggleButton*)save_check);
|
||||
prefs.history_limit = gtk_spin_button_get_value_as_int((GtkSpinButton*)history_spin);
|
||||
prefs.small_history = gtk_toggle_button_get_active((GtkToggleButton*)small_check);
|
||||
prefs.history_small = gtk_spin_button_get_value_as_int((GtkSpinButton*)history_small);
|
||||
prefs.items_menu = gtk_spin_button_get_value_as_int((GtkSpinButton*)items_menu);
|
||||
prefs.hyperlinks_only = gtk_toggle_button_get_active((GtkToggleButton*)hyperlinks_check);
|
||||
prefs.confirm_clear = gtk_toggle_button_get_active((GtkToggleButton*)confirm_check);
|
||||
prefs.full_hist_button = gtk_toggle_button_get_active((GtkToggleButton*)full_hist_check);
|
||||
prefs.single_line = gtk_toggle_button_get_active((GtkToggleButton*)linemode_check);
|
||||
prefs.reverse_history = gtk_toggle_button_get_active((GtkToggleButton*)reverse_check);
|
||||
prefs.item_length = gtk_spin_button_get_value_as_int((GtkSpinButton*)charlength_spin);
|
||||
@ -116,11 +112,9 @@ static void save_preferences()
|
||||
g_key_file_set_boolean(rc_key, "rc", "save_uris", prefs.save_uris);
|
||||
g_key_file_set_boolean(rc_key, "rc", "save_history", prefs.save_history);
|
||||
g_key_file_set_integer(rc_key, "rc", "history_limit", prefs.history_limit);
|
||||
g_key_file_set_boolean(rc_key, "rc", "small_history", prefs.small_history);
|
||||
g_key_file_set_integer(rc_key, "rc", "history_small", prefs.history_small);
|
||||
g_key_file_set_integer(rc_key, "rc", "items_menu", prefs.items_menu);
|
||||
g_key_file_set_boolean(rc_key, "rc", "hyperlinks_only", prefs.hyperlinks_only);
|
||||
g_key_file_set_boolean(rc_key, "rc", "confirm_clear", prefs.confirm_clear);
|
||||
g_key_file_set_boolean(rc_key, "rc", "full_hist_button", prefs.full_hist_button);
|
||||
g_key_file_set_boolean(rc_key, "rc", "single_line", prefs.single_line);
|
||||
g_key_file_set_boolean(rc_key, "rc", "reverse_history", prefs.reverse_history);
|
||||
g_key_file_set_integer(rc_key, "rc", "item_length", prefs.item_length);
|
||||
@ -221,11 +215,9 @@ void read_preferences()
|
||||
prefs.save_uris = g_key_file_get_boolean(rc_key, "rc", "save_uris", NULL);
|
||||
prefs.save_history = g_key_file_get_boolean(rc_key, "rc", "save_history", NULL);
|
||||
prefs.history_limit = g_key_file_get_integer(rc_key, "rc", "history_limit", NULL);
|
||||
prefs.small_history = g_key_file_get_boolean(rc_key, "rc", "small_history", NULL);
|
||||
prefs.history_small = g_key_file_get_integer(rc_key, "rc", "history_small", NULL);
|
||||
prefs.items_menu = g_key_file_get_integer(rc_key, "rc", "items_menu", NULL);
|
||||
prefs.hyperlinks_only = g_key_file_get_boolean(rc_key, "rc", "hyperlinks_only", NULL);
|
||||
prefs.confirm_clear = g_key_file_get_boolean(rc_key, "rc", "confirm_clear", NULL);
|
||||
prefs.full_hist_button = g_key_file_get_boolean(rc_key, "rc", "full_hist_button", NULL);
|
||||
prefs.single_line = g_key_file_get_boolean(rc_key, "rc", "single_line", NULL);
|
||||
prefs.reverse_history = g_key_file_get_boolean(rc_key, "rc", "reverse_history", NULL);
|
||||
prefs.item_length = g_key_file_get_integer(rc_key, "rc", "item_length", NULL);
|
||||
@ -238,8 +230,8 @@ void read_preferences()
|
||||
/* Check for errors and set default values if any */
|
||||
if ((!prefs.history_limit) || (prefs.history_limit > 1000) || (prefs.history_limit < 0))
|
||||
prefs.history_limit = DEF_HISTORY_LIMIT;
|
||||
if ((!prefs.history_small) || (prefs.history_small > 100) || (prefs.history_small < 0))
|
||||
prefs.history_limit = DEF_HISTORY_SMALL;
|
||||
if ((!prefs.items_menu) || (prefs.items_menu > 1000) || (prefs.items_menu < 0))
|
||||
prefs.items_menu = DEF_ITEMS_MENU;
|
||||
if ((!prefs.item_length) || (prefs.item_length > 75) || (prefs.item_length < 0))
|
||||
prefs.item_length = DEF_ITEM_LENGTH;
|
||||
if ((!prefs.ellipsize) || (prefs.ellipsize > 3) || (prefs.ellipsize < 0))
|
||||
@ -714,21 +706,15 @@ void show_preferences(gint tab)
|
||||
history_spin = gtk_spin_button_new((GtkAdjustment*)adjustment, 0.0, 0);
|
||||
gtk_spin_button_set_update_policy((GtkSpinButton*)history_spin, GTK_UPDATE_IF_VALID);
|
||||
gtk_box_pack_start((GtkBox*)hbox, history_spin, FALSE, FALSE, 0);
|
||||
small_check = gtk_check_button_new_with_mnemonic(_("_Use small history"));
|
||||
gtk_widget_set_tooltip_text(small_check, _("Use a small history window to prevent scrolling"));
|
||||
gtk_box_pack_start((GtkBox*)vbox, small_check, FALSE, FALSE, 0);
|
||||
hbox = gtk_hbox_new(FALSE, 4);
|
||||
gtk_box_pack_start((GtkBox*)vbox, hbox, FALSE, FALSE, 0);
|
||||
label = gtk_label_new(_("Small history size:"));
|
||||
label = gtk_label_new(_("Items in menu:"));
|
||||
gtk_misc_set_alignment((GtkMisc*)label, 0.0, 0.50);
|
||||
gtk_box_pack_start((GtkBox*)hbox, label, FALSE, FALSE, 0);
|
||||
adjustment_small = gtk_adjustment_new(25, 5, 100, 1, 10, 0);
|
||||
history_small = gtk_spin_button_new((GtkAdjustment*)adjustment_small, 0.0, 0);
|
||||
gtk_spin_button_set_update_policy((GtkSpinButton*)history_small, GTK_UPDATE_IF_VALID);
|
||||
gtk_box_pack_start((GtkBox*)hbox, history_small, FALSE, FALSE, 0);
|
||||
full_hist_check = gtk_check_button_new_with_mnemonic(_("_Full history button in panel menu"));
|
||||
gtk_widget_set_tooltip_text(full_hist_check, _("Shows the \"full history\" button only in the panel menu, to keep the pop-up menu clean"));
|
||||
gtk_box_pack_start((GtkBox*)vbox, full_hist_check, FALSE, FALSE, 0);
|
||||
items_menu = gtk_spin_button_new((GtkAdjustment*)adjustment_small, 0.0, 0);
|
||||
gtk_spin_button_set_update_policy((GtkSpinButton*)items_menu, GTK_UPDATE_IF_VALID);
|
||||
gtk_box_pack_start((GtkBox*)hbox, items_menu, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start((GtkBox*)vbox_history, frame, FALSE, FALSE, 0);
|
||||
|
||||
/* Build the items frame */
|
||||
@ -975,11 +961,9 @@ void show_preferences(gint tab)
|
||||
gtk_toggle_button_set_active((GtkToggleButton*)save_uris_check, prefs.save_uris);
|
||||
gtk_toggle_button_set_active((GtkToggleButton*)save_check, prefs.save_history);
|
||||
gtk_spin_button_set_value((GtkSpinButton*)history_spin, (gdouble)prefs.history_limit);
|
||||
gtk_toggle_button_set_active((GtkToggleButton*)small_check, prefs.small_history);
|
||||
gtk_spin_button_set_value((GtkSpinButton*)history_small, (gdouble)prefs.history_small);
|
||||
gtk_spin_button_set_value((GtkSpinButton*)items_menu, (gdouble)prefs.items_menu);
|
||||
gtk_toggle_button_set_active((GtkToggleButton*)hyperlinks_check, prefs.hyperlinks_only);
|
||||
gtk_toggle_button_set_active((GtkToggleButton*)confirm_check, prefs.confirm_clear);
|
||||
gtk_toggle_button_set_active((GtkToggleButton*)full_hist_check, prefs.full_hist_button);
|
||||
gtk_toggle_button_set_active((GtkToggleButton*)linemode_check, prefs.single_line);
|
||||
gtk_toggle_button_set_active((GtkToggleButton*)reverse_check, prefs.reverse_history);
|
||||
gtk_spin_button_set_value((GtkSpinButton*)charlength_spin, (gdouble)prefs.item_length);
|
||||
|
@ -36,11 +36,9 @@ G_BEGIN_DECLS
|
||||
#define DEF_SAVE_URIS TRUE
|
||||
#define DEF_SAVE_HISTORY TRUE
|
||||
#define DEF_HISTORY_LIMIT 50
|
||||
#define DEF_SMALL_HISTORY TRUE
|
||||
#define DEF_HISTORY_SMALL 20
|
||||
#define DEF_ITEMS_MENU 20
|
||||
#define DEF_HYPERLINKS_ONLY FALSE
|
||||
#define DEF_CONFIRM_CLEAR FALSE
|
||||
#define DEF_FULL_HIST_BUTTON FALSE
|
||||
#define DEF_SINGLE_LINE TRUE
|
||||
#define DEF_REVERSE_HISTORY FALSE
|
||||
#define DEF_ITEM_LENGTH 50
|
||||
|
Loading…
Reference in New Issue
Block a user