Merged trunk r4110 to build-system
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/branches/build-system@4111 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
commit
95b90f2c4a
29
ChangeLog
29
ChangeLog
@ -167,6 +167,35 @@ Configurable Build Menu Changes
|
||||
* src/project.h, src/project.c:
|
||||
Changed to load/store the new configuration info.
|
||||
|
||||
2009-08-18 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
||||
|
||||
* src/callbacks.c:
|
||||
Fix 'Open Selected File' for unsaved new documents.
|
||||
* src/keybindings.c, src/keybindings.h, src/prefs.c:
|
||||
Fix updating main menu accelerators after changing keybindings
|
||||
(thanks to Lex Trotman).
|
||||
* src/callbacks.c:
|
||||
Fix using 'Insert date' keybinding when a custom date string has
|
||||
not been set.
|
||||
* src/pluginprivate.h, src/pluginutils.c, src/plugins.c:
|
||||
Merge Plugin and GeanyPluginPrivate structs.
|
||||
|
||||
|
||||
2009-08-18 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
|
||||
|
||||
* src/keybindings.c:
|
||||
Fix non-working Home and End keys on numpads.
|
||||
|
||||
|
||||
2009-08-17 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
||||
|
||||
* doc/geany.txt, doc/geany.html, NEWS:
|
||||
Add 'Scope autocompletion' section.
|
||||
Add 'Tools menu items' section to explain configuration files
|
||||
submenu, reload configuration item.
|
||||
Minor updates/fixes.
|
||||
|
||||
|
||||
2009-08-16 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
|
||||
|
||||
* src/document.c:
|
||||
|
4
NEWS
4
NEWS
@ -58,8 +58,8 @@ Geany 0.18 (August 16, 2009)
|
||||
Filetypes:
|
||||
* Add Markdown filetype (thanks to Jon Strait).
|
||||
* Highlight D WYSIWYG backtick `strings` and r"strings" (#1895745).
|
||||
* Minor improvements for filetypes: Fortran, Haxe, HTML, Lua,
|
||||
Matlab, Pascal, Python, Tcl
|
||||
* Minor improvements for filetypes: Fortran, Haxe, HTML, Lua,
|
||||
Matlab, Pascal, Python, Tcl.
|
||||
|
||||
Tags:
|
||||
* Read custom system global tags files from $prefix/share/geany/tags
|
||||
|
1317
doc/geany.html
1317
doc/geany.html
File diff suppressed because it is too large
Load Diff
@ -44,10 +44,10 @@ Some basic features of Geany:
|
||||
|
||||
* Syntax highlighting
|
||||
* Code folding
|
||||
* Symbol name autocompletion
|
||||
* Autocompletion of symbols/words
|
||||
* Construct completion/snippets
|
||||
* Auto-closing of XML and HTML tags
|
||||
* Call tips
|
||||
* Calltips
|
||||
* Many supported filetypes including C, Java, PHP, HTML, Python, Perl,
|
||||
Pascal, and others
|
||||
* Symbol lists
|
||||
@ -865,6 +865,24 @@ word on completion* preference is set (in `Editor Completions tab in
|
||||
preferences dialog`_) then any characters after the cursor that match
|
||||
a symbol or word are deleted.
|
||||
|
||||
Scope autocompletion
|
||||
````````````````````
|
||||
E.g.::
|
||||
|
||||
struct
|
||||
{
|
||||
int i;
|
||||
char c;
|
||||
} foo;
|
||||
|
||||
When you type ``foo.`` it will show an autocompletion list with 'i' and
|
||||
'c' symbols.
|
||||
|
||||
It only works for languages that set parent scope names for e.g. struct
|
||||
members. Currently this means C-like languages. The C tag parser only
|
||||
parses global scopes, so this won't work for structs or objects declared
|
||||
in local scope.
|
||||
|
||||
|
||||
User-definable snippets
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@ -1588,10 +1606,6 @@ Show documents list
|
||||
change between documents (see `Switching between documents`_) and
|
||||
to perform some common operations such as saving, closing and reloading.
|
||||
|
||||
Show full path name in documents list
|
||||
Show the full directory path of the files you are editing in the
|
||||
*Documents* list.
|
||||
|
||||
Fonts
|
||||
`````
|
||||
|
||||
@ -2887,7 +2901,8 @@ Send Selection to Terminal Sends the current sele
|
||||
line (if there is no selection) to the
|
||||
embedded Terminal (VTE).
|
||||
|
||||
Reflow lines/paragraph Reformat selected lines or current paragraph,
|
||||
Reflow lines/block Reformat selected lines or current
|
||||
(indented) text block,
|
||||
breaking lines at the long line marker.
|
||||
|
||||
|
||||
@ -2923,6 +2938,11 @@ Find Document Usage Finds all occurrences
|
||||
document and displays them in the messages
|
||||
window.
|
||||
|
||||
Mark All Highlight all matches of the current
|
||||
word/selection in the current document
|
||||
with a colored box. If there's nothing to
|
||||
find, highlighted matches will be cleared.
|
||||
|
||||
**Go to**
|
||||
|
||||
Navigate forward a location Switches to the next location in the navigation
|
||||
@ -3093,6 +3113,27 @@ Configuration files
|
||||
===================
|
||||
|
||||
|
||||
Tools menu items
|
||||
----------------
|
||||
There's a *Configuration files* submenu in the *Tools* menu that
|
||||
contains items for some of the available user configuration files.
|
||||
Clicking on one opens it in the editor for you to update. Geany will
|
||||
reload the file after you have saved it.
|
||||
|
||||
.. note::
|
||||
Other configuration files are not shown here and you will need to open
|
||||
them manually and usually restart Geany to see any changes.
|
||||
|
||||
There's also a *Reload Configuration* item which can be used if you
|
||||
updated a configuration file outside of the current instance. This
|
||||
item is also necessary to update syntax highlighting colors.
|
||||
|
||||
.. note::
|
||||
Syntax highlighting colors aren't updated after saving
|
||||
filetypes.common as this can take a short while depending on which
|
||||
documents are open.
|
||||
|
||||
|
||||
Global configuration file
|
||||
-------------------------
|
||||
|
||||
|
@ -1,3 +1,10 @@
|
||||
2009-08-19 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
|
||||
|
||||
* pt.po: Rename Portuguese translation file so it can work as a fall
|
||||
back for all Portuguese based languages.
|
||||
* sl.po: Update of Slovenian translation. Thanks to Joze Klepec.
|
||||
|
||||
|
||||
2009-08-16 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
|
||||
|
||||
* de.po:
|
||||
|
@ -1,2 +1,2 @@
|
||||
# set of available languages (in alphabetic order)
|
||||
be bg ca cs de el en_GB es fi fr hu it ja ko lb nl pl pt_BR pt_PT ro ru sl sv tr uk vi zh_CN zh_TW
|
||||
be bg ca cs de el en_GB es fi fr hu it ja ko lb nl pl pt pt_BR ro ru sl sv tr uk vi zh_CN zh_TW
|
||||
|
@ -6,7 +6,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Geany 0.18\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-08-16 18:09+0200\n"
|
||||
"POT-Creation-Date: 2009-08-16 18:14+0200\n"
|
||||
"PO-Revision-Date: 2009-08-12 00:29+0000\n"
|
||||
"Last-Translator: DarkVenger\n"
|
||||
"Language-Team: Portuguese <pt@li.org>\n"
|
7
po/sl.po
7
po/sl.po
@ -6,9 +6,9 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: geany 0.18\n"
|
||||
"Project-Id-Version: geany 0.19\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2009-08-16 18:09+0200\n"
|
||||
"POT-Creation-Date: 2009-08-16 18:14+0200\n"
|
||||
"PO-Revision-Date: 2009-08-11 23:24+0100\n"
|
||||
"Last-Translator: Jože Klepec <joze.klepec@siol.net>\n"
|
||||
"Language-Team: Slovenian <geany-i18n@uvena.de>\n"
|
||||
@ -3226,8 +3226,9 @@ msgid "Print Geany's installation prefix"
|
||||
msgstr "Izpiši Geanyjevo namestitveno predpono"
|
||||
|
||||
#: ../src/main.c:141
|
||||
#, fuzzy
|
||||
msgid "Don't load the previous session's files"
|
||||
msgstr "Ne naloži datotek prejšnje seje"
|
||||
msgstr "ne naloži datotek prejšnje seje"
|
||||
|
||||
#: ../src/main.c:143
|
||||
msgid "Don't load terminal support"
|
||||
|
@ -1466,11 +1466,18 @@ on_insert_date_activate (GtkMenuItem *menuitem,
|
||||
gpointer user_data)
|
||||
{
|
||||
GeanyDocument *doc = document_get_current();
|
||||
gchar *format;
|
||||
gchar *format = NULL;
|
||||
gchar *time_str;
|
||||
|
||||
g_return_if_fail(doc != NULL);
|
||||
|
||||
/* set default value */
|
||||
if (utils_str_equal("", ui_prefs.custom_date_format))
|
||||
{
|
||||
g_free(ui_prefs.custom_date_format);
|
||||
ui_prefs.custom_date_format = g_strdup("%d.%m.%Y");
|
||||
}
|
||||
|
||||
if (utils_str_equal(_("dd.mm.yyyy"), (gchar*) user_data))
|
||||
format = "%d.%m.%Y";
|
||||
else if (utils_str_equal(_("mm.dd.yyyy"), (gchar*) user_data))
|
||||
@ -1487,13 +1494,6 @@ on_insert_date_activate (GtkMenuItem *menuitem,
|
||||
format = ui_prefs.custom_date_format;
|
||||
else
|
||||
{
|
||||
/* set default value */
|
||||
if (utils_str_equal("", ui_prefs.custom_date_format))
|
||||
{
|
||||
g_free(ui_prefs.custom_date_format);
|
||||
ui_prefs.custom_date_format = g_strdup("%d.%m.%Y");
|
||||
}
|
||||
|
||||
dialogs_show_input(_("Custom Date Format"),
|
||||
_("Enter here a custom date and time format. You can use any conversion specifiers which can be used with the ANSI C strftime function."),
|
||||
ui_prefs.custom_date_format, FALSE, &on_custom_date_input_response);
|
||||
@ -1866,7 +1866,7 @@ on_menu_open_selected_file1_activate (GtkMenuItem *menuitem,
|
||||
|
||||
if (sel != NULL)
|
||||
{
|
||||
gchar *locale_filename, *filename;
|
||||
gchar *locale_filename, *filename = NULL;
|
||||
|
||||
if (g_path_is_absolute(sel))
|
||||
filename = g_strdup(sel);
|
||||
@ -1874,7 +1874,10 @@ on_menu_open_selected_file1_activate (GtkMenuItem *menuitem,
|
||||
{ /* relative filename, add the path of the current file */
|
||||
gchar *path;
|
||||
|
||||
path = g_path_get_dirname(doc->file_name);
|
||||
path = utils_get_current_file_dir_utf8();
|
||||
if (!path)
|
||||
path = g_get_current_dir();
|
||||
|
||||
filename = g_build_path(G_DIR_SEPARATOR_S, path, sel, NULL);
|
||||
|
||||
if (! g_file_test(filename, G_FILE_TEST_EXISTS) &&
|
||||
|
@ -4567,7 +4567,7 @@ static void setup_sci_keys(ScintillaObject *sci)
|
||||
sci_clear_cmdkey(sci, '\\' | (SCMOD_CTRL << 16)); /* Next word part */
|
||||
sci_clear_cmdkey(sci, SCK_UP | (SCMOD_CTRL << 16)); /* scroll line up */
|
||||
sci_clear_cmdkey(sci, SCK_DOWN | (SCMOD_CTRL << 16)); /* scroll line down */
|
||||
sci_clear_cmdkey(sci, SCK_HOME); /* line start */
|
||||
sci_clear_cmdkey(sci, SCK_HOME); /* line start */
|
||||
sci_clear_cmdkey(sci, SCK_END); /* line end */
|
||||
sci_clear_cmdkey(sci, SCK_END | (SCMOD_ALT << 16)); /* visual line end */
|
||||
|
||||
|
@ -107,12 +107,10 @@ static void cb_func_switch_tablastused(guint key_id);
|
||||
static void cb_func_move_tab(guint key_id);
|
||||
|
||||
static void add_popup_menu_accels(void);
|
||||
static void apply_kb_accel(GeanyKeyGroup *group, GeanyKeyBinding *kb, gpointer user_data);
|
||||
|
||||
|
||||
/* This is used to set default keybindings on startup but at this point we don't want to
|
||||
* assign the keybinding to the menu_item (apply_kb_accel) otherwise it can't be overridden
|
||||
* by user keybindings anymore */
|
||||
/* This is used to set default keybindings on startup.
|
||||
* Menu accels are set in apply_kb_accel(). */
|
||||
/** Simple convenience function to fill a GeanyKeyBinding struct item.
|
||||
* @param group Group.
|
||||
* @param key_id Keybinding index for the group.
|
||||
@ -566,16 +564,6 @@ void keybindings_init(void)
|
||||
}
|
||||
|
||||
|
||||
static void apply_kb_accel(GeanyKeyGroup *group, GeanyKeyBinding *kb, gpointer user_data)
|
||||
{
|
||||
if (kb->key != 0 && kb->menu_item)
|
||||
{
|
||||
gtk_widget_add_accelerator(kb->menu_item, "activate", kb_accel_group,
|
||||
kb->key, kb->mods, GTK_ACCEL_VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
typedef void (*KBItemCallback) (GeanyKeyGroup *group, GeanyKeyBinding *kb, gpointer user_data);
|
||||
|
||||
static void keybindings_foreach(KBItemCallback cb, gpointer user_data)
|
||||
@ -630,36 +618,42 @@ static void load_user_kb(void)
|
||||
}
|
||||
|
||||
|
||||
static void apply_kb_accel(GeanyKeyGroup *group, GeanyKeyBinding *kb, gpointer user_data)
|
||||
{
|
||||
if (kb->key != 0 && kb->menu_item)
|
||||
{
|
||||
gtk_widget_add_accelerator(kb->menu_item, "activate", kb_accel_group,
|
||||
kb->key, kb->mods, GTK_ACCEL_VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void keybindings_load_keyfile(void)
|
||||
{
|
||||
load_user_kb();
|
||||
add_popup_menu_accels();
|
||||
|
||||
/* set menu accels now, after user keybindings have been read and processed
|
||||
* if we would set it before, user keybindings could not override menu item's default
|
||||
* keybindings */
|
||||
/* set menu accels now, after user keybindings have been read */
|
||||
keybindings_foreach(apply_kb_accel, NULL);
|
||||
}
|
||||
|
||||
|
||||
static void add_menu_accel(GeanyKeyGroup *group, guint kb_id,
|
||||
GtkAccelGroup *accel_group, GtkWidget *menuitem)
|
||||
static void add_menu_accel(GeanyKeyGroup *group, guint kb_id, GtkWidget *menuitem)
|
||||
{
|
||||
GeanyKeyBinding *kb = &group->keys[kb_id];
|
||||
|
||||
if (kb->key != 0)
|
||||
gtk_widget_add_accelerator(menuitem, "activate", accel_group,
|
||||
gtk_widget_add_accelerator(menuitem, "activate", kb_accel_group,
|
||||
kb->key, kb->mods, GTK_ACCEL_VISIBLE);
|
||||
}
|
||||
|
||||
|
||||
#define GEANY_ADD_POPUP_ACCEL(kb_id, wid) \
|
||||
add_menu_accel(group, kb_id, accel_group, ui_lookup_widget(main_widgets.editor_menu, G_STRINGIFY(wid)))
|
||||
add_menu_accel(group, kb_id, ui_lookup_widget(main_widgets.editor_menu, G_STRINGIFY(wid)))
|
||||
|
||||
/* set the menu item accelerator shortcuts (just for visibility, they are handled anyway) */
|
||||
static void add_popup_menu_accels(void)
|
||||
{
|
||||
GtkAccelGroup *accel_group = gtk_accel_group_new();
|
||||
GeanyKeyGroup *group;
|
||||
|
||||
group = g_ptr_array_index(keybinding_groups, GEANY_KEY_GROUP_EDITOR);
|
||||
@ -696,8 +690,6 @@ static void add_popup_menu_accels(void)
|
||||
GEANY_ADD_POPUP_ACCEL(GEANY_KEYS_FORMAT_SENDTOVTE, send_selection_to_vte2);
|
||||
|
||||
/* the build menu items are set if the build menus are created */
|
||||
|
||||
gtk_window_add_accel_group(GTK_WINDOW(main_widgets.window), accel_group);
|
||||
}
|
||||
|
||||
|
||||
@ -1075,6 +1067,37 @@ static gboolean check_vte(GdkModifierType state, guint keyval)
|
||||
#endif
|
||||
|
||||
|
||||
/* Map the keypad keys to their equivalent functions (taken from ScintillaGTK.cxx) */
|
||||
static guint key_kp_translate(guint key_in)
|
||||
{
|
||||
switch (key_in)
|
||||
{
|
||||
case GDK_KP_Down:
|
||||
return GDK_Down;
|
||||
case GDK_KP_Up:
|
||||
return GDK_Up;
|
||||
case GDK_KP_Left:
|
||||
return GDK_Left;
|
||||
case GDK_KP_Right:
|
||||
return GDK_Right;
|
||||
case GDK_KP_Home:
|
||||
return GDK_Home;
|
||||
case GDK_KP_End:
|
||||
return GDK_End;
|
||||
case GDK_KP_Page_Up:
|
||||
return GDK_Page_Up;
|
||||
case GDK_KP_Page_Down:
|
||||
return GDK_Page_Down;
|
||||
case GDK_KP_Delete:
|
||||
return GDK_Delete;
|
||||
case GDK_KP_Insert:
|
||||
return GDK_Insert;
|
||||
default:
|
||||
return key_in;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* central keypress event handler, almost all keypress events go to this function */
|
||||
static gboolean on_key_press_event(GtkWidget *widget, GdkEventKey *ev, gpointer user_data)
|
||||
{
|
||||
@ -1098,6 +1121,9 @@ static gboolean on_key_press_event(GtkWidget *widget, GdkEventKey *ev, gpointer
|
||||
if (keyval >= GDK_A && keyval <= GDK_Z)
|
||||
keyval += GDK_a - GDK_A;
|
||||
|
||||
if (keyval >= GDK_KP_Space && keyval < GDK_KP_Equal)
|
||||
keyval = key_kp_translate(keyval);
|
||||
|
||||
/*geany_debug("%d (%d) %d (%d)", keyval, ev->keyval, state, ev->state);*/
|
||||
|
||||
/* special cases */
|
||||
@ -2228,3 +2254,20 @@ static void cb_func_insert_action(guint key_id)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* update key combination */
|
||||
void keybindings_update_combo(GeanyKeyBinding *kb, guint key, GdkModifierType mods)
|
||||
{
|
||||
GtkWidget *widget = kb->menu_item;
|
||||
|
||||
if (widget && kb->key)
|
||||
gtk_widget_remove_accelerator(widget, kb_accel_group, kb->key, kb->mods);
|
||||
|
||||
kb->key = key;
|
||||
kb->mods = mods;
|
||||
|
||||
if (widget && kb->key)
|
||||
gtk_widget_add_accelerator(widget, "activate", kb_accel_group,
|
||||
kb->key, kb->mods, GTK_ACCEL_VISIBLE);
|
||||
}
|
||||
|
||||
|
@ -322,6 +322,8 @@ void keybindings_set_item(GeanyKeyGroup *group, gsize key_id,
|
||||
GeanyKeyCallback callback, guint key, GdkModifierType mod,
|
||||
gchar *name, gchar *label, GtkWidget *menu_item);
|
||||
|
||||
void keybindings_update_combo(GeanyKeyBinding *kb, guint key, GdkModifierType mods);
|
||||
|
||||
void keybindings_send_command(guint group_id, guint key_id);
|
||||
|
||||
GeanyKeyBinding *keybindings_lookup_item(guint group_id, guint key_id);
|
||||
|
@ -26,7 +26,9 @@
|
||||
#ifndef PLUGINPRIVATE_H
|
||||
#define PLUGINPRIVATE_H
|
||||
|
||||
#include "ui_utils.h"
|
||||
#include "ui_utils.h" /* GeanyAutoSeparator */
|
||||
#include "keybindings.h" /* GeanyKeyGroup */
|
||||
|
||||
|
||||
typedef struct SignalConnection
|
||||
{
|
||||
@ -35,11 +37,24 @@ typedef struct SignalConnection
|
||||
}
|
||||
SignalConnection;
|
||||
|
||||
|
||||
typedef struct GeanyPluginPrivate
|
||||
{
|
||||
GModule *module;
|
||||
gchar *filename; /* plugin filename (/path/libname.so) */
|
||||
PluginInfo info; /* plugin name, description, etc */
|
||||
GeanyPlugin public; /* fields the plugin can read */
|
||||
|
||||
void (*init) (GeanyData *data); /* Called when the plugin is enabled */
|
||||
GtkWidget* (*configure) (GtkDialog *dialog); /* plugin configure dialog, optional */
|
||||
void (*help) (void); /* Called when the plugin should show some help, optional */
|
||||
void (*cleanup) (void); /* Called when the plugin is disabled or when Geany exits */
|
||||
|
||||
/* extra stuff */
|
||||
PluginFields fields;
|
||||
GeanyKeyGroup *key_group;
|
||||
GeanyAutoSeparator toolbar_separator;
|
||||
gboolean resident;
|
||||
GArray *signal_ids; /* SignalConnection's to disconnect when unloading */
|
||||
GArray *signal_ids; /* SignalConnection's to disconnect when unloading */
|
||||
}
|
||||
GeanyPluginPrivate;
|
||||
|
||||
|
@ -62,24 +62,7 @@
|
||||
#include "pluginutils.h"
|
||||
#include "pluginprivate.h"
|
||||
|
||||
|
||||
typedef struct Plugin
|
||||
{
|
||||
GModule *module;
|
||||
gchar *filename; /* plugin filename (/path/libname.so) */
|
||||
PluginInfo info; /* plugin name, description, etc */
|
||||
PluginFields fields;
|
||||
GeanyPlugin public; /* fields the plugin can read */
|
||||
GeanyPluginPrivate priv; /* GeanyPlugin type private data, same as (*public.priv) */
|
||||
|
||||
GeanyKeyGroup *key_group;
|
||||
|
||||
void (*init) (GeanyData *data); /* Called when the plugin is enabled */
|
||||
GtkWidget* (*configure) (GtkDialog *dialog); /* plugin configure dialog, optional */
|
||||
void (*help) (void); /* Called when the plugin should show some help, optional */
|
||||
void (*cleanup) (void); /* Called when the plugin is disabled or when Geany exits */
|
||||
}
|
||||
Plugin;
|
||||
typedef GeanyPluginPrivate Plugin; /* shorter alias */
|
||||
|
||||
|
||||
static gboolean want_plugins = FALSE;
|
||||
@ -534,9 +517,6 @@ plugin_init(Plugin *plugin)
|
||||
g_return_if_fail(plugin->init);
|
||||
plugin->init(&geany_data);
|
||||
|
||||
if (p_geany_plugin && (*p_geany_plugin)->priv->resident)
|
||||
g_module_make_resident(plugin->module);
|
||||
|
||||
/* store some function pointers for later use */
|
||||
g_module_symbol(plugin->module, "plugin_configure", (void *) &plugin->configure);
|
||||
g_module_symbol(plugin->module, "plugin_help", (void *) &plugin->help);
|
||||
@ -667,7 +647,7 @@ plugin_new(const gchar *fname, gboolean init_plugin, gboolean add_to_list)
|
||||
plugin->filename = g_strdup(fname);
|
||||
plugin->module = module;
|
||||
plugin->public.info = &plugin->info;
|
||||
plugin->public.priv = &plugin->priv;
|
||||
plugin->public.priv = plugin;
|
||||
|
||||
if (init_plugin)
|
||||
plugin_init(plugin);
|
||||
@ -681,7 +661,7 @@ plugin_new(const gchar *fname, gboolean init_plugin, gboolean add_to_list)
|
||||
|
||||
static void remove_callbacks(Plugin *plugin)
|
||||
{
|
||||
GArray *signal_ids = plugin->priv.signal_ids;
|
||||
GArray *signal_ids = plugin->signal_ids;
|
||||
SignalConnection *sc;
|
||||
|
||||
if (signal_ids == NULL)
|
||||
@ -714,7 +694,7 @@ plugin_cleanup(Plugin *plugin)
|
||||
if (plugin->key_group)
|
||||
g_ptr_array_remove_fast(keybinding_groups, plugin->key_group);
|
||||
|
||||
widget = plugin->priv.toolbar_separator.widget;
|
||||
widget = plugin->toolbar_separator.widget;
|
||||
if (widget)
|
||||
gtk_widget_destroy(widget);
|
||||
|
||||
|
@ -88,7 +88,7 @@ void plugin_module_make_resident(GeanyPlugin *plugin)
|
||||
{
|
||||
g_return_if_fail(plugin);
|
||||
|
||||
plugin->priv->resident = TRUE;
|
||||
g_module_make_resident(plugin->priv->module);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1265,8 +1265,7 @@ static void kb_cell_edited_cb(GtkCellRendererText *cellrenderertext, gchar *path
|
||||
|
||||
/* set the values here, because of the above check, setting it in
|
||||
* gtk_accelerator_parse would return a wrong key combination if it is duplicate */
|
||||
kb->key = lkey;
|
||||
kb->mods = lmods;
|
||||
keybindings_update_combo(kb, lkey, lmods);
|
||||
|
||||
gtk_tree_store_set(store, &iter, KB_TREE_SHORTCUT, new_text, -1);
|
||||
|
||||
@ -1311,8 +1310,7 @@ static void kb_dialog_response_cb(GtkWidget *dialog, gint response, G_GNUC_UNUSE
|
||||
|
||||
/* set the values here, because of the above check, setting it in
|
||||
* gtk_accelerator_parse would return a wrong key combination if it is duplicate */
|
||||
kb->key = lkey;
|
||||
kb->mods = lmods;
|
||||
keybindings_update_combo(kb, lkey, lmods);
|
||||
|
||||
gtk_tree_store_set(store, &g_iter,
|
||||
KB_TREE_SHORTCUT, gtk_label_get_text(GTK_LABEL(dialog_label)), -1);
|
||||
@ -1395,8 +1393,7 @@ static gboolean kb_find_duplicate(GeanyKeyBinding *search_kb,
|
||||
_("The combination '%s' is already used for \"%s\"."),
|
||||
action, kb->label))
|
||||
{
|
||||
kb->key = 0;
|
||||
kb->mods = 0;
|
||||
keybindings_update_combo(kb, 0, 0);
|
||||
kb_clear_tree_shortcut(g, i);
|
||||
continue;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user