+2001-11-08 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
+
+ * ui/default.ui: move math panel from Edit to Insert.
+
2001-11-05 Kayvan A. Sylvan <kayvan@sylvan.com>
* layouts/chess.layout:
Item "Find & Replace...|F" "find-replace"
Submenu "Tabular|T" "edit_tabular"
Submenu "Floats & Insets|I" "edit_floats"
- Item "Math Panel|l" "math-panel"
Submenu "Math|M" "edit_math"
Separator
#Item "Read Only" "buffer-toggle-read-only"
Menu "insert"
Item "Math Formula|h" "math-mode"
Item "Display Formula|D" "math-display"
+ Item "Math Panel|l" "math-panel"
#Item "Display Formula|D" "math-mode display"
#Item "Change to Inline Math Formula|q" "math-mutate simple"
#Item "Change to Displayed Math Formula|q" "math-mutate equation"
+2001-11-07 John Levon <moz@compsoc.man.ac.uk>
+
+ * minibuffer.h:
+ * minibuffer.C: fix crash, improve drop-down completion
+
+2001-11-06 John Levon <moz@compsoc.man.ac.uk>
+
+ * lyxserver.h:
+ * lyxserver.C: invalidate fd's when doing endPipe()
+
2001-11-08 José Matos <jamatos@fep.up.pt>
* buffer.C (sgmlLineBreak): renamed from linux_doc_line_break.
+2001-11-07 John Levon <moz@compsoc.man.ac.uk>
+
+ * DropDown.C: fix crash, improve behaviour a bit
+
2001-11-07 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* FormDocument.C (class_apply):
fl_hide_form(form_);
return 1;
}
+ XUngrabPointer(fl_get_display(), CurrentTime);
} else if (xev->type == KeyPress) {
char s_r[10]; s_r[9] = '\0';
KeySym keysym_return;
case XK_Return:
completed();
return 1;
+ case XK_Escape:
+ fl_select_browser_line(browser_, 0);
+ completed();
+ return 1;
+ default:
+ // FIXME: if someone has a got a way to
+ // convince the event to fall back to the
+ // minibuffer, I'm glad to hear it.
+ // fl_XPutBackEvent() doesn't work.
+ fl_select_browser_line(browser_, 0);
+ completed();
+ return 1;
}
}
return 0;
void DropDown::completed()
{
+ XUngrabPointer(fl_get_display(), CurrentTime);
string selection;
int i = fl_get_browser(browser_);
- if (i == -1)
+ if (i < 1)
selection = "";
else
selection = fl_get_browser_line(browser_, i);
}
-void LyXComm::endPipe(int fd, string const & filename)
+void LyXComm::endPipe(int & fd, string const & filename)
{
if (fd < 0)
return;
<< '\n' << strerror(errno) << endl;
};
#endif
+
+ fd = -1;
}
int startPipe(string const &);
/// finish a pipe
- void endPipe(int, string const &);
+ void endPipe(int &, string const &);
/// This is -1 if not open
int infd;
void MiniBuffer::dd_init()
{
dropdown_ = new DropDown(owner_, the_buffer);
- dropdown_->result.connect(slot(this, &MiniBuffer::set_input));
+ dropdown_->result.connect(slot(this, &MiniBuffer::set_complete_input));
}
// Perfect match
string const tmp =
comp[0] + _(" [sole completion]");
- stored_set(comp[0]);
+ stored_set(comp[0] + " ");
set_input(tmp);
} else {
// More that one match
// Find maximal avaliable prefix
string const tmp = comp[0];
string test(input);
- test += tmp[test.length()];
+ if (tmp.length() > test.length())
+ test += tmp[test.length()];
while (test.length() < tmp.length()) {
vector<string> vtmp;
lyx::copy_if(comp.begin(),
}
+void MiniBuffer::set_complete_input(string const & str)
+{
+ if (!str.empty())
+ set_input(str);
+}
+
+
void MiniBuffer::set_input(string const & str)
{
fl_set_input(the_buffer, str.c_str());
void stored_slot();
///
void stored_set(string const &);
- ///
+ /// set the minibuffer content if str non-empty
+ void set_complete_input(string const &);
+ /// set the minibuffer content
void set_input(string const &);
///
void init();