protected override void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e) { if (!IsActive) { switch (e.Message.MessageType) { case MessageType.PresenceStateOffline: case MessageType.PresenceStateAway: case MessageType.PresenceStateOnline: HasEvent = true; break; } } base.OnMessageTextViewMessageAdded(sender, e); }
protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e) { var signalCounter = false; if (!IsActive) { // the chat isn't active, thus we need to signal the event/msg counter if (IsSynced) { signalCounter = true; } else { // we are still syncing and since Smuxi 0.13 we know what msg // was last seen, so we only signal newer messages than that if (Frontend.EngineProtocolVersion >= new Version(0, 13) && e.Message.TimeStamp > SyncedLastSeenMessage) { signalCounter = true; } } } if (signalCounter) { switch (e.Message.MessageType) { case MessageType.Normal: HasActivity = true; break; case MessageType.Event: HasEvent = true; break; } } var buffer = _OutputMessageTextView.Buffer; buffer.MoveMark(_EndMark, buffer.EndIter); AutoScroll(); }
protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e) { if (!IsActive) { switch (e.Message.MessageType) { case MessageType.Normal: HasActivity = true; break; case MessageType.Event: HasEvent = true; break; } } var buffer = _OutputMessageTextView.Buffer; buffer.MoveMark(_EndMark, buffer.EndIter); AutoScroll(); }
protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e) { // HACK: out of scope? // probably we should use the ChatViewManager instead? if (Frontend.MainWindow.Notebook.CurrentChatView != this) { switch (e.Message.MessageType) { case MessageType.Normal: HasActivity = true; break; case MessageType.Event: HasEvent = true; break; } } var buffer = _OutputMessageTextView.Buffer; buffer.MoveMark(_EndMark, buffer.EndIter); AutoScroll(); }
protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e) { Trace.Call(sender, e); // HACK: out of scope? // probably we should use the ChatViewManager instead? if (Frontend.MainWindow.Notebook.CurrentChatView != this) { switch (e.Message.MessageType) { case MessageType.Normal: HasActivity = true; break; case MessageType.Event: HasEvent = true; break; } } Gtk.ScrolledWindow sw = _OutputScrolledWindow; Gtk.TextView tv = _OutputMessageTextView; if (sw.Vadjustment.Upper == (sw.Vadjustment.Value + sw.Vadjustment.PageSize)) { // the scrollbar is way at the end, lets autoscroll Gtk.TextIter endit = tv.Buffer.EndIter; tv.Buffer.PlaceCursor(endit); tv.Buffer.MoveMark(tv.Buffer.InsertMark, endit); tv.ScrollMarkOnscreen(tv.Buffer.InsertMark); } // update the end mark tv.Buffer.MoveMark(_EndMark, tv.Buffer.EndIter); }
protected virtual void OnMessageTextViewMessageAdded(object sender, MessageTextViewMessageAddedEventArgs e) { // HACK: out of scope? // probably we should use the ChatViewManager instead? if (Frontend.MainWindow.Notebook.CurrentChatView != this) { switch (e.Message.MessageType) { case MessageType.Normal: HasActivity = true; break; case MessageType.Event: HasEvent = true; break; } } var buffer = _OutputMessageTextView.Buffer; buffer.MoveMark(_EndMark, buffer.EndIter); var vAdjustment = _OutputScrolledWindow.Vadjustment; if (vAdjustment.Upper == (vAdjustment.Value + vAdjustment.PageSize)) { // the scrollbar is way at the end, lets autoscroll _OutputMessageTextView.ScrollMarkOnscreen(_EndMark); } }