]> git.lyx.org Git - lyx.git/blobdiff - src/intl.C
Small fixes
[lyx.git] / src / intl.C
index c6292d7ddcf6b324a5d58564ac4ba32967029caa..371d44da9ba1fde56cee4df3f82b56e4354055e1 100644 (file)
 #include "trans_mgr.h"
 #include "support/lstrings.h"
 #include "language.h"
+#include "frontends/Dialogs.h" // redrawGUI
+
+#ifdef SIGC_CXX_NAMESPACES
+using SigC::slot;
+#endif
 
 using std::endl;
 
@@ -46,14 +51,23 @@ Intl::Intl()
        primarykeymap = false;
        curkeymap = 0;
        otherkeymap = 0;
+       r_ = Dialogs::redrawGUI.connect(slot(this, &Intl::redraw));
 }
 
 Intl::~Intl()
 {
+       r_.disconnect();
        delete trans;
 }
 
 
+void Intl::redraw()
+{
+       if (fd_form_keymap && fd_form_keymap->KeyMap->visible)
+               fl_redraw_form(fd_form_keymap->KeyMap);
+}
+
+
 int Intl::SetPrimary(string const & lang)
 {
        if (lyxerr.debugging(Debug::KBMAP))
@@ -135,7 +149,7 @@ void Intl::KeyMapPrim()
        fl_set_button(fd_form_keymap->KeyOnBtn2, 0);
 
        /* read text from choice */
-       int i = Language->get();
+       int const i = Language->get();
 
        string p;
        if (i == otherkeymap)
@@ -166,7 +180,7 @@ void Intl::KeyMapSec()
        fl_set_button(fd_form_keymap->KeyOnBtn2, 1);
 
        /* read text from choice */
-       int i = Language2->get();
+       int const i = Language2->get();
 
        string p;
        if (i == otherkeymap)
@@ -273,10 +287,13 @@ void Intl::InitKeyMapper(bool on)
        Language2->add(120, 110, 160, 30, 300); // Secondary
        fl_end_form();
 
-       int n = 1;
+       int n = 0;
        // Default is not in the language map
+#ifdef DO_USE_DEFAULT_LANGUAGE
        Language->addto("default");
        Language2->addto("default");
+       ++n;
+#endif
        for (Languages::const_iterator cit = languages.begin();
             cit != languages.end(); ++cit) {
                Language->addto((*cit).second.lang());
@@ -288,7 +305,7 @@ void Intl::InitKeyMapper(bool on)
        Language2->addto(_("other..."));
        otherkeymap = n + 1;
        if (!Language->select_text(prim_lang)) {
-               Language->select(n+1);
+               Language->select(n + 1);
                fl_set_input(fd_form_keymap->OtherKeymap, prim_lang.c_str());
        }
        else 
@@ -354,6 +371,7 @@ void Intl::MenuKeymap()
 {
        if (fd_form_keymap->KeyMap->visible) {
                fl_raise_form(fd_form_keymap->KeyMap);
-       } else fl_show_form(fd_form_keymap->KeyMap, FL_PLACE_MOUSE,
-                           FL_FULLBORDER, _("Key Mappings"));
+       } else fl_show_form(fd_form_keymap->KeyMap,
+                           FL_PLACE_MOUSE | FL_FREE_SIZE, FL_TRANSIENT,
+                           _("Key Mappings"));
 }