পুনঃব্যবস্থাপনা বিন্দু থেকে নিষ্ক্রিয় ফ্রেমে মাউস ক্লিক প্রতিরোধ করুন


11

আমি নিষ্ক্রিয় এক্স উইন্ডোতে একটি ফ্রেমে "প্রথম" ক্লিকটি কোনও প্রভাব ফেলতে চাই না, অন্যটি ফ্রেমটিকে সক্রিয় করা ছাড়া। বিশেষত, আমি এটি পয়েন্টটি পুনরায় স্থাপন করতে চাই না।

সমস্যাটি হ'ল আমি যখন মাউস ক্লিক পেয়েছি তখন তিনি ফ্রেমটি নিষ্ক্রিয় ছিলেন তা সনাক্ত করতে পারি না । সুতরাং নিম্নলিখিত কোডটি সর্বদা দেখায় "y":

;; detect if frame is active when clicking
(defun my/mouse-drag-region (event)
  (interactive "e")
  (mouse-minibuffer-check event)
  (let* ((window (caadr event))
         (frame (window-frame window)))
    (if (eql frame (selected-frame))
        (print "y")
      (print "n"))))
(global-set-key [down-mouse-1] 'my/mouse-drag-region)

আমি কীভাবে সনাক্ত করব যে ফ্রেমটি আগে নিষ্ক্রিয় ছিল?

বা, আমি অন্য কোথাও যা করার চেষ্টা করছি তা ইতিমধ্যে কেউ অর্জন করেছে?

দ্রষ্টব্য: আমি এই অন্যান্য প্রশ্নের চেয়ে আলাদা কিছু জিজ্ঞাসা করছি , যা নিষ্ক্রিয় উইন্ডো সম্পর্কে, নিষ্ক্রিয় ফ্রেমগুলি সম্পর্কে নয়।


আপনি এর জন্য কীবোর্ড শর্টকাটটি সংশোধন করতে এবং mouse-set-pointযা চান তা করতে নিজের ফাংশন তৈরি করতে চান। কি C-h kমাউস ক্লিক জিনিস দেখ দুই (2) ফাংশন যে তালিকাভুক্ত করা হয়।
আইনজীবি

আপনার ফ্রেমের শিরোনাম বার এবং সীমানা নেই? আপনি বাফারে ক্লিক করার পরিবর্তে কেন কেবল এগুলি ক্লিক করেন না?
ড্র হয়েছে

@ লিওলিস্ট: আমি মনে করি না এটি সাহায্য করে কারণ আপ ইভেন্টটি পরে এসেছিল। আমি এমনকি এটিও বলতে পারি না যে ডাউন ইভেন্টের সময় ফ্রেমটি নিষ্ক্রিয় ছিল!
এডাম

2
@ ড্রু: ঠিক আছে, আমি পারলাম, তবে এটি বেমানান। আমি এক্স উইন্ডোতে ক্লিক করতে সক্ষম হতে পছন্দ করতাম, যেমন আমি যখন টার্মিনালে ইম্যাক্স চালাতে পারি তখনই।
এডাম

এটি আসলেই একটি বিরক্তিকর আচরণ। আমি একেবারে মাউস ব্যবহার না করে এটি প্রতিরোধ করি, অর্থাত্‍। Alt + ট্যাব এবং কো ব্যবহার করে। ফ্রেমের মধ্যে পরিবর্তন করতে।
জারজিলি পোলোনকাই

উত্তর:


1

ইম্যাক্সের মধ্যে থেকে এটি সম্ভব বলে আমি মনে করি না। সমস্যাটি হ'ল আপনি ফ্রেমে ক্লিক করার সাথে সাথে উইন্ডো ম্যানেজার সেই ফ্রেমটি নির্বাচন করে। ইমাসগুলি এভাবে নির্বাচিত ফ্রেম হিসাবে অবিলম্বে দেখবে।

আপনার নিজের পরীক্ষার কোড এটি দেখায়। কোন পারেন এর পরামর্শ mouse-drag-regionবা mouse-set-point(অথবা অন্য কোন গিয়ে Emacs ফাংশন) কোনো পার্থক্য করতে হবে।

(সম্ভবত X11 স্তরে আপনি করতে পারেন এমন কিছু আছে - হোন না))


আপনি নির্বাচিত ফ্রেমটিকে ট্র্যাক করতে পারবেন না post-command-hook, সমস্ত বিন্দু অবস্থান রেকর্ড করতে এবং নির্বাচিত ফ্রেমটি পরিবর্তিত হলে সেগুলি ফিরিয়ে দিতে পারবেন? এটি দক্ষ হবে না, তবে এটি কার্যকর হবে।
পাইথননট

@ পাইথননট: উঘ। হতে পারে. চেষ্টা করে দেখুন post-command-hookএটি একটি হতাহতের শেষ অবলম্বন। ;-) আমরা সবাই এটি প্রচুর স্টাফের জন্য ব্যবহার করি তবে এটি একটি ভারী হাতুড়ি।
ড্র হয়েছে

1

আপনি যা চেয়েছিলেন ঠিক তা নয়, তবে এটি আমার পক্ষে ভাল কাজ করে:

(global-unset-key [down-mouse-1])   ; no dragging nonsense
(global-set-key [mouse-1] 'mouse-select-window)  ; no setting point

এটি আপনার অনুরোধের সাথে ঠিক মেলে না যে কেবল ফ্রেমটিকে সক্রিয় করা হয় তা নয় তবে উইন্ডোতে ক্লিক করা হয়। তবে, আমি এটি দরকারী বলে মনে করি। ডাবল ক্লিক পয়েন্ট সরানো, একক ক্লিক না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.